android - Swift 中 CC_SHA256 的 Kotlin 等效项是什么?

标签 android swift encryption kotlin sha256

我在 Swift 中有以下代码:

static func sha256(_ data: Data) -> Data? 
{
   guard let res = NSMutableData(length: Int(CC_SHA256_DIGEST_LENGTH)) else { return nil }
   CC_SHA256((data as NSData).bytes, CC_LONG(data.count), res.mutableBytes.assumingMemoryBound(to: UInt8.self))
   return res as Data
}

我不确定在 Kotlin 中进行 Android 开发时如何翻译 CC_SHA256_DIGEST_LENGTHCC_SHA256

执行此操作的正确方法是什么?

最佳答案

更通用的方法(按照 user2340612 的建议):

private fun hashString(input: String, algorithm: String): String    {
    return MessageDigest.getInstance(algorithm)
        .digest(input.toByteArray())
        .fold("", { str, it -> str + "%02x".format(it) })
} 

List of valid algorithms

感谢this guy .

关于android - Swift 中 CC_SHA256 的 Kotlin 等效项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57582226/

相关文章:

Swift 3 Type 初始化导致泄漏

java - 如何在 Java 中计算欧拉 totient 函数 φ?

java - 如果我至少支持 API 14,我不必担心什么屏幕密度?

Android,无限重复动画与 instrumentation.waitForIdleSync()

android - 当你只知道包名时如何运行外部应用程序?

java - 如何使用 GnuPG 类加密字符串?

c - 如何使用 API 并正确初始化 openssl?

java - Android 同一个实例输出不同的结果

ios - 如何在 spriteKit swift 中降低 Sprite 的速度?

ios - 如果应用程序在 iOS 上未激活,我怎么知道联系人已被修改?