復号アルゴリズムRSA、AES、DES、MD 5の使用例と違い
2032 ワード
二つの問題を理解してください.なぜ暗号化アルゴリズムが使われていますか?暗号化は、認証されていないユーザが暗号化された情報を取得しても、復号方法が分からないため、情報の内容が分かりません.なぜ暗号化され、データの安全と完全性を保障し、他人に改ざんされないようにしますか?
1、要約アルゴリズム
データ要約アルゴリズムは暗号化アルゴリズムにおいて非常に重要な分岐であり、データ署名、データ完全性検査などの機能を実現するために、すべてのデータに指紋情報を抽出することによって、非可逆性のために、敏感情報の暗号化として使用されることがある.データ要約アルゴリズムは、ハッシュアルゴリズム、ハッシュアルゴリズムとも呼ばれる.
一般的なダイジェストアルゴリズムはMD 5、SHA 1、SHA 256があり、暗号化後はそれぞれ128 bit、160 bit、256 bitを出力します.
1.1 MD 5
1、要約アルゴリズム
データ要約アルゴリズムは暗号化アルゴリズムにおいて非常に重要な分岐であり、データ署名、データ完全性検査などの機能を実現するために、すべてのデータに指紋情報を抽出することによって、非可逆性のために、敏感情報の暗号化として使用されることがある.データ要約アルゴリズムは、ハッシュアルゴリズム、ハッシュアルゴリズムとも呼ばれる.
一般的なダイジェストアルゴリズムはMD 5、SHA 1、SHA 256があり、暗号化後はそれぞれ128 bit、160 bit、256 bitを出力します.
1.1 MD 5
//md5
public void md5(String str) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
String md5 = bytes2Hex(md.digest());
System.out.println(md5);
} catch (NoSuchAlgorithmException e) {
}
}
// 16
private static String bytes2Hex(byte[] byteArray) {
String resultValue = "";
String strTemp = null;
for (int i = 0; i < byteArray.length; i++) {
strTemp = (Integer.toHexString(byteArray[i] & 0xFF));
if (strTemp.length() == 1) {
resultValue += "0";
}
resultValue += strTemp;
}
return resultValue;
}
1.2 SHA 1//SHA1
public static void sha1(String str) {
try {
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.update(str.getBytes());
String md5 = bytes2Hex(md.digest());
System.out.println(md5);
} catch (NoSuchAlgorithmException e) {
}
}
1.3 SHA 256//SHA256
public static void sha256(String str) {
try {
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(str.getBytes());
String md5 = bytes2Hex(md.digest());
System.out.println(md5);
} catch (NoSuchAlgorithmException e) {
}
}
要約アルゴリズムのキーコードは、変更のみ必要です. Message Digest.get Instance(「SHA-256」) 各種のダイジェストアルゴリズムを実現できます.MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(str.getBytes());
byte[]bytes = md.digest()
bytes2Hex(bytes);
来源:www.zhuang fang.org