java 使用base64编码生成128位md5哈希

vfh0ocws  于 2023-04-04  发布在  Java
关注(0)|答案(1)|浏览(228)

我需要得到一个像这样的哈希和ODA1OTU0NDVkMzkwNTU5N2NlMmNiOTc0Nzk4ZGY2YjI=(44个符号)。
我怎样才能得到正确的答案呢?这些方法对我没有帮助。

MessageDigest md = MessageDigest.getInstance("MD5");
md.reset();
md.update(part);    // part - array of bytes
byte[] digest = md.digest();
byte[] hash = MessageDigest.getInstance("MD5").digest(part);
String checksum = new BigInteger(1, hash).toString(16);    // b8e82d4ff9aef02913b081930caa46f9
String myHashHex = DatatypeConverter.printHexBinary(digest);// B8E82D4FF9AEF02913B081930CAA46F9
String myHash64 = DatatypeConverter.printBase64Binary(digest); // RRbu8RMW/XSDBwNW9WWYhA==
String md5Str = Base64.getEncoder().encodeToString(digest); // RRbu8RMW/XSDBwNW9WWYhA==

我想得到一个像这样的哈希和ODA1OTU0NDVkMzkwNTU5N2NlMmNiOTc0Nzk4ZGY2YjI=,但不能很好地做到这一点。

taor4pac

taor4pac1#

对我很有效!非常感谢!

byte[] hash = MessageDigest.getInstance("MD5").digest(part);
String hexString = new BigInteger(1, hash).toString(16); // 4516eef11316fd7483070356f5659884
String md5Str = Base64.getEncoder().encodeToString(hexString.getBytes()); // NDUxNkVFRjExMzE2RkQ3NDgzMDcwMzU2RjU2NTk4ODQ=

相关问题