我目前正在开发分布式系统应用程序。我想在Android应用程序中验证Python生成的哈希。我有一个python方法在给定的字符串变量中进行哈希处理。
这是python函数,效果很好。
hash_value = hashlib.sha1("PARAMETER123".encode("UTF-8")).hexdigest()
我想在我的Android应用程序中实现相同的功能。希望一些专家能尽快提供帮助。
最佳答案
您可以尝试以下代码段,
String text = "PARAMETER123";
MessageDigest md = MessageDigest.getInstance("SHA-1");
byte[] textBytes = text.getBytes("UTF-8");
md.update(textBytes, 0, textBytes.length);
byte[] sha1hash = md.digest();
String encrypted_text = = convertToHex(sha1hash);
和convertToHex()方法
private static String convertToHex(byte[] data) {
StringBuilder buf = new StringBuilder();
for (byte b : data) {
int halfbyte = (b >>> 4) & 0x0F;
int two_halfs = 0;
do {
buf.append((0 <= halfbyte) && (halfbyte <= 9) ? (char) ('0' + halfbyte) : (char) ('a' + (halfbyte - 10)));
halfbyte = b & 0x0F;
} while (two_halfs++ < 1);
}
return buf.toString();
}
这会将基于UTF-8的文本转换为SHA1十六进制。
参考:https://stackoverflow.com/a/5980789/2506025