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ビットのハッシュ値を生成することである. コード例 概要 セキュリティ・ハッシュ・アルゴリズムは、主にデジタル署名基準(Digital Signature Standard DSS)で定義されているデジタル署名アルゴリズム(Digital Signature Algorithm DSA)に適用されます.2^64ビット未満の長さのメッセージに対して、SHA 1は160ビットのメッセージダイジェストを生成する.原理
SHA−1は、明文を受信し、それを不可逆的にセグメント(通常より小さい)暗号文に変換することを考えたデータ暗号化アルゴリズムであり、一列の入力コード(プリマッピングまたは情報と称する)を取り、それらを長さが短く、ビット固定の出力シーケンスすなわちハッシュ値に変換することもできる.(情報要約または情報認証コードとも称する)のプロセスです. コード例
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();
}
SHASHA−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();
}