You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin中生成16字符长度的MD5哈希值?

在Kotlin中生成16字符长度的MD5哈希字符串

16位MD5哈希并非独立算法,它本质是标准32位MD5哈希的中间16个字符。以你的测试用例为例:

32位MD5结果:E292561C92AA8DDBE039D4808CC51159
16位目标结果:92AA8DDBE039D480
后者正好是前者从第9位到第24位的子串(对应字符串索引8到24,左闭右开)

实现代码

以下是完整的Kotlin实现,包含32位MD5生成和16位截取逻辑:

import java.security.MessageDigest
import kotlin.experimental.and

fun String.md532(): String {
    val md = MessageDigest.getInstance("MD5")
    val bytes = md.digest(this.toByteArray(Charsets.UTF_8))
    return bytes.joinToString("") {
        "%02x".format(it and 0xFF.toByte()).uppercase()
    }
}

fun String.md516(): String {
    return this.md532().substring(8, 24)
}

测试验证

调用方法测试你的示例字符串:

fun main() {
    val input = "1681799732000"
    println(input.md516()) // 输出:92AA8DDBE039D480
}

这段代码先通过md532()生成UTF-8编码的标准32位MD5哈希,再通过substring(8,24)截取中间16位,即可得到目标结果。

内容的提问来源于stack exchange,提问作者Sargius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 11:22:35