关于MD5算法的官方定义和算法实现, 可以自行百度, 不再一日一技中讨论.
个人理解MD5算法, 就是可以根据任意长度的字符串, 得到一个32位的十六进制字符串(区分大小写), MD5算法具有良好的防碰撞性, 可以用于一般强度的加密.
Java中的使用:
public static String signByMd5(String... str) {
MessageDigest md;
try {
md = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return "";
}
for (String temp : str) {
md.update(temp.getBytes());
}
return String.format("%032x", new BigInteger(1, md.digest()));
}
python中使用:
hl = hashlib.md5()
hl.update(str(timestamp).encode(encoding='utf-8'))
hl.update(SECRET.encode(encoding='utf-8'))
sign = hl.hexdigest