【问题标题】:Convert Byte Array to String in Kotlin在 Kotlin 中将字节数组转换为字符串
【发布时间】:2017-10-06 03:49:28
【问题描述】:

我正在尝试使用 kotlin 在我的 android 代码中生成字符串的 MD5 ..

val md5 = MessageDigest.getInstance("MD5")
val hash = md5.digest(queryToSign.toByteArray(Charset.defaultCharset())).toString()

但这给了我:

[B@118072

有什么想法吗?

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    解决了.. 使用 BigInteger

    val md5 = MessageDigest.getInstance("MD5")
    val hash = BigInteger(1, md5.digest(queryToSign.toByteArray(Charset.defaultCharset()))).toString(16)
    

    【讨论】:

    • 否则使用十六进制转换器(例如 apache codex)就可以了
    • 对每个人来说:虽然它是一个漂亮的解决方案,但请注意所有前导零都会被修剪。在计算哈希的情况下,这是至关重要的。因此,还必须有一个代码来检查结果的长度,并在需要时用零完成。例如,val correctedHash = "0".repeat(bytes.size * 2 - hash.length) + hash
    猜你喜欢
    • 2021-11-11
    • 1970-01-01
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多