java暗号化——要約アルゴリズム

1693 ワード

MD 5
  • 概要
  • MD 5は、情報伝達が完全に一致することを保証するために、Message Digest Algorithm 5である.コンピュータで広く使われているハイブリッドアルゴリズムの一つであり、主流プログラミング言語は一般的にMD 5によって実現されている.
  • MD 5アルゴリズムは、以下の特徴を有する.
         1、圧縮性:任意の長さのデータは、算出したMD 5値の長さが固定されています.
         2、計算しやすい:元のデータからMD 5値を計算するのは容易である.
         3、変更耐性:元のデータを任意に変更し、1バイトだけ変更しても、得られたMD 5の値には大きな違いがあります.
         4、弱抵抗衝突:元データとそのMD 5値を知っていますが、同じMD 5値を持つデータ(すなわち偽造データ)を見つけるのは非常に難しいです.
          5、強い衝突:2つの異なるデータを探して、同じMD 5値を持つようにするのは、非常に難しいです.
  • 原理
            MD 5アルゴリズムの簡単な説明は、MD 5が512ビットのパケットで入力情報を処理し、各パケットが16個の32ビットのパケットに分割され、一連の処理を経て、アルゴリズムの出力は4つの32ビットのパケットからなり、4つの32ビットのパケットをカスケードした後に128ビットのハッシュ値を生成することである. 
  • コード例
  • public static byte[] encrypt(String str) throws NoSuchAlgorithmException {
      //  MD5    MessageDigest   
      MessageDigest md5 = MessageDigest.getInstance("MD5");
      byte[] srcData = str.getBytes();
      //   srcBytes    
      md5.update(srcData);
      //       ,  result
      return md5.digest();
     }
    SHA
  • 概要
  •     セキュリティ・ハッシュ・アルゴリズムは、主にデジタル署名基準(Digital Signature Standard DSS)で定義されているデジタル署名アルゴリズム(Digital Signature Algorithm DSA)に適用されます.2^64ビット未満の長さのメッセージに対して、SHA 1は160ビットのメッセージダイジェストを生成する.
  • 原理
        SHA−1は、明文を受信し、それを不可逆的にセグメント(通常より小さい)暗号文に変換することを考えたデータ暗号化アルゴリズムであり、一列の入力コード(プリマッピングまたは情報と称する)を取り、それらを長さが短く、ビット固定の出力シーケンスすなわちハッシュ値に変換することもできる.(情報要約または情報認証コードとも称する)のプロセスです.
  • コード例
  • public static byte[] encrypt(String str) throws NoSuchAlgorithmException {
      //  SHA    MessageDigest   
      MessageDigest sha = MessageDigest.getInstance("SHA");
      
      byte[] srcData = str.getBytes();
      //   srcBytes    
      sha.update(srcData);
      //       ,  result
      return sha.digest();
     }