Base 64、MD 5、RSAとASE暗号化アルゴリズムの総括とJAVA実現-MD 5
4231 ワード
一般的な暗号化アルゴリズム
一般的な暗号化アルゴリズムは,対称暗号化アルゴリズム,非対称暗号化アルゴリズム,Hashアルゴリズムの3つに分類できる.
MD5
MD 5メッセージ要約演算アルゴリズム(英語:MD 5 Message-Digest Algorithm)は、広く使用されている暗号コンパクト関数であり、128ビット(16ビットメタグループ)のハッシュ値(hash value)を生成し、情報伝送が完全に一致することを確保することができる.MD 5アルゴリズムは、一方向ハッシュアルゴリズムの一種(一方向ハッシュアルゴリズムはHASHアルゴリズムとも呼ばれる)であり、不可逆暗号化アルゴリズムである.
げんり
MD 5アルゴリズムの簡単な説明は、次のとおりです.
MD 5は入力された情報を512ビットパケットで処理し、各パケットは16個の32ビットパケットに分割され、一連の処理を経た後、アルゴリズムの出力は4つの32ビットパケットからなり、この4つの32ビットパケットをカスケードした後、128ビットハッシュ値を生成する.
プロセス:
JAVA実現
public static class Encrypt{
//
private final String DEFAULT_SALT=">sd?ds;
private Encrypt() {
}
static final Encrypt INSTANCE = new Encrypt();
public String toMd5String(String originString) {
return toMd5String(originString,DEFAULT_SALT);
}
public String toMd5String(String originString,String salt) {
StringBuffer result = null;
if (originString != null) {
try {
result = new StringBuffer();
// MD5
MessageDigest md = MessageDigest.getInstance("MD5");
//
//
byte bytes[] = md.digest(new StringBuffer(salt).append(originString).toString().getBytes("ISO8859-1"));
for (byte b :bytes) {
// 0xff 32
String str = Integer.toHexString(b & 0xFF);
if (str.length() == 1) {
result.append("b") ;
}
result.append(str);
}
}catch (UnsupportedEncodingException e){
e.printStackTrace();
}
catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
return result.toString();
}
}