DES暗号化と復号化ツール

  DESは最近、二重対称暗号化と復号化を行って、ここにそれを記録します。

  DES対称暗号化、暗号化は、一緒に保持されなければならない、より伝統的な方法、その暗号化動作、情報の情報伝送及び処理が実行される同じ鍵、送信者と受信者の情報を用いて復号化操作、ありますパスワードは、暗号化アルゴリズムは対称です。
  最初の2つの方法:暗号化と復号化。
  
1  公共   文字列encryptDes(データ文字列は、文字列キー)スロー例外{
 2  
3。         // 元のキーデータを使用してはDESKeySpecオブジェクトを作成し
4。          DESedeKeySpec DKS = 新しい新しいDESedeKeySpec(key.getBytes());
 5          // キーの工場を作成
6。          するSecretKeyFactory = SecretKeyFactory.getInstanceするKeyFactory( "DES" );
 7          // オブジェクトはDESKeySpecのSecretKeyを変換する植物へのキーと
8          キーK = keyFactory.generateSecret(DKS);
 9  
10          // 初期暗号エンジン・クラス・パラメータは以下の通りであった:アルゴリズム/作業モード/塗りつぶしパターン
11          暗号暗号= Cipher.getInstance( "DES / CBC / PKCS5Padding"変換);
 12          // 初期化ベクトル
13は          IvParameterSpec IPSは= 新しい新しい IvParameterSpec( "12345678" .getBytesを());
 14          //は暗号の暗号化を初期化する
15          cipher.init(Cipher.ENCRYPT_MODE、K、IPS);
 16          //は暗号化して出力を行いますそしてBASE64トランスコードされた暗号化されたバイト配列の後に
17          文字STR = Base64.encodeBase64String(Cipher.doFinal(data.getBytes( "UTF-8" )));
 18は、         リターンSTR;
 19      }
1  パブリック 静的文字列decryptDes(Stringデータ、文字列キー)がスロー例外{
 2  
3              DESedeKeySpec DKS = 新しいDESedeKeySpec(key.getBytesを())。
4              するSecretKeyFactoryするKeyFactory = SecretKeyFactory.getInstance( "DES" )。
5              鍵k = keyFactory.generateSecret(DKS)。
6              暗号暗号= Cipher.getInstance( "DES / CBC / PKCS5Padding"変換)。
7              IvParameterSpec IPS = 新しい IvParameterSpec( "12345678" .getBytes())。
8              cipher.init(Cipher.DECRYPT_MODE、K、IPS)。
9              バイト []アウト= cipher.doFinal(Base64.decodeBase64(データ));;
10              リターン 新しい文字列(うち、 "UTF-8" );
11      }

 

  ok,放送完毕。

  いくつかの知識:

  データ型を満たしました:

    NoPadding:APIまたはアルゴリズム自体は、データを処理しません。
    PKCS5Padding:

            暗号化の前に8バイトのデータ長、Mの残りの部分を法であれば、M> 0、バイト補体8-M、Mの8バイトの値、数バイトの補数の数バイトとの間の差、すなわち、

                それは8つの0 8バイトを追加さ​​れる場合、バイト値は、追加バイトの数です。


            復号化された:最後のバイト、mの値を取り、mはデータバイトから尾を削除、である、暗号化前のデータを、残りのオリジナル。

                例えば、差が3バイトであり、その後、差を埋めるために11111333の4バイトを埋めること88888888 11114444を充填する違いではありません

  ベクターは:
    CBC(DESアルゴリズムのみである)モードでは、IV生成は乱数(又は擬似ランダム)メカニズムを使用して、比較的一般的な方法です。
    IV作用は、主に、第一の暗号文ブロックを生成するために使用されるので、最終的な暗号文が、差(同じ平文の場合)を生成しないことを
    ので、パスワード攻撃より難しく、加えて他の静脈使用しています。最大の利点は、同じであっても平文場合、同じ鍵が異なる暗号文を生成することができるということです。

最後に、私は輝かしいを作成し、離れて流行から、すべての成功、健康を願っています。
 

おすすめ

転載: www.cnblogs.com/liutian1912/p/12507982.html
おすすめ