gpt4 book ai didi

md5 - DigestUtils.md5Hex()传递String对象时生成错误的哈希值

转载 作者:行者123 更新时间:2023-12-02 12:48:38 25 4
gpt4 key购买 nike

我正在尝试使用DigestUtils中的org.apache.commons.codec类在Kotlin中生成md5哈希。这是测试代码

@Test
fun md5Test(){

val userPassword: String = "123"
val md5Hash: String = "202cb962ac59075b964b07152d234b70"

assertEquals(md5Hash, DigestUtils.md5Hex(userPassword))
}

问题是,当我运行此测试时,它失败并说生成的md5哈希为 28c1a138574866e9c2e5a19dca9234ce

但是...当我传递字符串值而不是对象时
assertEquals(md5Hash, DigestUtils.md5Hex("123"))

测试顺利通过

为什么会这样呢?

最佳答案

这是获取MD5 base64哈希的完整解决方案:

fun getMd5Base64(encTarget: ByteArray): String? {
val mdEnc: MessageDigest?
try {
mdEnc = MessageDigest.getInstance("MD5")
// Encryption algorithmy
val md5Base16 = BigInteger(1, mdEnc.digest(encTarget)) // calculate md5 hash
return Base64.encodeToString(md5Base16.toByteArray(), 16).trim() // convert from base16 to base64 and remove the new line character
} catch (e: NoSuchAlgorithmException) {
e.printStackTrace()
return null
}
}

关于md5 - DigestUtils.md5Hex()传递String对象时生成错误的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41626319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com