作者:Angel-約定_335_292_569_759 | 来源:互联网 | 2023-02-02 10:13
1> Elliott Fris..:
首先,让我们好好十六进制编码器像在这个答案从maybeWeCouldStealAVan
private final static char[] hexArray = "0123456789ABCDEF".toCharArray();
public static String bytesToHex(byte[] bytes) {
char[] hexChars = new char[bytes.length * 2];
for (int j = 0; j >> 4];
hexChars[j * 2 + 1] = hexArray[v & 0x0F];
}
return new String(hexChars);
}
然后使用MessageDigest
和BigInteger
(任意精度整数类型,这是您的python代码使用的类型)
public static void main(String[] args) {
try {
byte[] md5hex = MessageDigest.getInstance("MD5").digest("abc".getBytes());
System.out.println(new BigInteger(bytesToHex(md5hex), 16));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
我得到
191415658344158766168031473277922803570
另外,如果您这样做
System.out.println(bytesToHex(md5hex));
我也明白
900150983cd24fb0d6963f7d28e17f72