public static String convertToMD5(String input) throws Exception {
String md5 = null;
if (null == input)
return null;
try {
// Create MessageDigest object for MD5
MessageDigest digest = MessageDigest.getInstance("MD5");
// Update input string in message digest
digest.update(input.getBytes(), 0, input.length());
// Converts message digest value in base 16 (hex)
md5 = new BigInteger(1, digest.digest()).toString(16);
} catch (NoSuchAlgorithmException e) {
throw e;
}
return md5;
}用这段代码加密我想解码的字符串,将md5加密为普通字符串?你能帮上忙吗
发布于 2016-11-09 17:38:30
要添加到@dit的答案上,您只有一个选项;例如,比较MD5字符串。MD5("cat") == MD5("cat"),没有办法从MD5("cat")中派生出"cat",因为如前所述,它是一个散列函数。
下面是一些你可以用来比较的东西:
public static boolean matching(String orig, String compare){
String md5 = null;
try{
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(compare.getBytes());
byte[] digest = md.digest();
md5 = new BigInteger(1, digest()).toString(16);
return md5.equals(orig);
} catch (NoSuchAlgorithmException e) {
return false;
}
return false;
}然后你可以调用matching("d077f244def8a70e5ea758bd8352fcd8", "cat");,它将返回true,如果是matching(MD5("x"), "y"),它将返回false。
发布于 2016-11-09 17:12:46
md5不是一种加密算法。它是一个hash function。无法对哈希字符串进行解码。原始字符串被“销毁”/永远散列。
https://stackoverflow.com/questions/40503201
复制相似问题