使用Kotlin中的标准库生成字符串的MD5哈希?

我试过下面提到的代码

import java.math.BigInteger
import java.security.MessageDigest

fun md5(input:String): String {
    val md = MessageDigest.getInstance("MD5")
    return BigInteger(1, md.digest(input.toByteArray())).toString(16).padStart(32, '0')
}

这是最好的方式还是哪种方式?

推荐答案

使用java.security.MessageDigest是最简单的方法

import java.math.BigInteger
import java.security.MessageDigest

fun md5(input:String): String {
    val md = MessageDigest.getInstance("MD5")
    return BigInteger(1, md.digest(input.toByteArray())).toString(16).padStart(32, '0')
}

Kotlin相关问答推荐

在Kotlin中可以连接两个范围吗?

我如何测试一个可组合组件没有显示,但如果它不存在也接受?

处理合成层次 struct 中的深层按钮以切换视图

数据流弹性模板失败,出现错误&未知非复合转换urn";

Eclipse:无法安装 Kotlin 插件

有没有一种简单的方法可以将数组/列表中的每个元素相互相乘 - Kotlin?

使用 Discord4j 交叉发布 Discord 消息

如果不为空,则为 builder 设置一个值 - Kotlin

有没有办法重用 Job 实例?

使用最新的 com.jakewharton.rxbinding3:rxbinding:3.0.0-alpha2 库时未找到 RxTextView 和其他小部件

Android Studio 4.0.0 Java 8 库在 D8 和 R8 构建错误中脱糖

Firebase 权限被拒绝

如何在使用 Gradle 的 AppEngine 项目中使用 Kotlin

从命令行运行Java到Kotlin转换器?

如果作为 RxJava Observable 提供,Kotlin 密封类子类需要强制转换为基类

无法解决:androidx.lifecycle:lifecycle-extensions-ktx:2.0.0-alpha1

如何启用spring security kotlin DSL?

使用 kotlin 每 3 位数添加逗号或点

项目不会使用 Kotlin 1.1.3 构建

Kotlin 是否支持部分应用程序?