Base64は、8ビットバイトコードを送信するためのネットワーク上で最も一般的なエンコードメソッドの1つです。詳細なMIME仕様を含むRFC2045〜RFC2049を確認できます。 Base64エンコーディングを使用して、HTTP環境でより長い識別情報を渡すことができます。たとえば、Java Persistence System Hibernateでは、base64を使用して、長い一意の識別子(通常は128ビットUUID)を文字列にエンコードします。これは、HTTPフォームのパラメーターとして使用され、HTTP Get URLを使用します。他のアプリケーションでは、バイナリデータをURL(非表示のフォームフィールドを含む)の配置に適したフォームにエンコードする必要があることがよくあります。
現時点では、base64エンコードは短いだけでなく、読みにくいだけでなく、エンコードされたデータは肉眼で直接見られません。
Javaを暗号化する方法はたくさんあります。次に、base64暗号化方法を共有します。
パッケージcom.crypt; sun.misc.base64decoder; Import sun.misc.base64encoder;/** * base64暗号化と復号化 * @author yuanwei */public class base64 {/** * base64 decrypt * * @param key * @return * @return * @return excement */public static buyte [] decryptip byte [] base64Decoder())。decodeBuffer(key); } / ** * base64 encryption * * @param key * @return * @throws例外 * / public static string encryptbase64(byte [] key)throws exception {return(new base64encoder())。encodeBuffer(key); }}なぜbase64暗号化を使用するのですか?
Base64エンコーディングの役割:一部のシステムはASCII文字のみを使用できるためです。 Base64は、非ASCII文字からのデータをASCII文字に変換するために使用される方法です。下の表で使用されている文字とエンコーディングを使用します。
さらに、Base64は、HTTPおよびMIMEプロトコルの下でデータを迅速に送信するのに特に適しています。
Base64は、実際には、セキュリティフィールドの暗号化および復号化アルゴリズムではありません。いわゆるBase64暗号化と復号化が見られることがよくあります。実際、Base64はエンコードアルゴリズムとのみ見なすことができ、送信に適したデータコンテンツをエンコードします。元のテキストは、Base64エンコード後には表示できない文字形式になりますが、この方法は非常に基本的でシンプルです。
Base64エンコーディング方法では、3つの8ビットバイトごとに4つの6ビットバイトに変換する必要があります。その中で、変換後の4バイトの6つの有効ビットごとに有効なデータが有効なデータであり、2つの予備ビットに0が補充されて1バイトになります。したがって、Base64によって引き起こされるデータの冗長性はそれほど深刻ではありません。 Base64は、コードが速く簡単であるため、今日の一般的なエンコード方法です。
知識サプリメント:
URLエンコーダーは標準Base64の「/」文字と「+」文字が「%xx」などの形式に変更され、「%」数字がANSI SQLのワイルドカードとして使用されているため、これらの「%」数値をデータベースに格納するときに変換する必要があるため、標準Base64はURLの直接伝送に適していません。
この問題を解決するために、URLの改善されたBase64エンコードを使用できます。最後に '='数値を記入せず、標準Base64の「+」と「/」をそれぞれ「*」と「 - 」に変更します。これにより、URLエンコードとデコードおよびデータベースストレージ中に必要な変換が排除され、このプロセスのエンコーディング情報の長さの増加が回避され、データベースなどのオブジェクト識別子の形式を統合します。
「+」と「/"to"! "を変更する正規表現用の別の改善されたbase64バリアントがあります。および「 - 」、IRCUで使用される「+」、「*」、「[""と "]が正規表現に特別な意味があるためです。
また、「+/」を「_-」または「._」に変更するいくつかのバリアント(プログラミング言語で識別子名として使用)または「.-」(XMLでnmtokenに使用)または「_:」(XMLの名前に使用)も変更されます。
base64では、3つの8ビットバイトごとに4つの6ビットバイト(3*8 = 4*6 = 24)に変換し、2つの高0sから6ビットを追加して4つの8ビットバイトを形成します。つまり、変換された文字列は理論的には元の文字列よりも1/3長くなります。
上記はすべて、base64およびbase64暗号化と復号化アルゴリズムに関するものです。すべての人の学習暗号化と復号化に役立つことを願っています。