为了账号安全,请及时绑定邮箱和手机立即绑定

Swift 等同于 Java 中的 MessageDigest?

Swift 等同于 Java 中的 MessageDigest?

Smart猫小萌 2023-03-23 15:22:26
我正在尝试在我的应用程序中进行身份验证加密,它适用于 kotlin 但不适用于 swift。我们正在尝试使用“AES/ECB/PKCS5Padding”。在 kotlin 代码下方获取密钥。但是我的快速代码返回的结果与 kotlin 不同。private fun getSecretKey(): SecretKey {        val messageDigest = MessageDigest.getInstance("SHA-1")        val key = messageDigest.digest(SECRET_KEY.toByteArray(Charset.forName("UTF-8")))            .copyOfRange(0, 16)        return SecretKeySpec(key, "AES")    }我怎样才能在 Swift 中做到这一点?swift 中 MessageDigest.getInstance 的等价物是什么。
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

没有等效的SecretKeySpec。但是这个 Java 类主要包装了一个二进制密钥。下面的代码只返回二进制密钥数据。


对于斯威夫特 4:


    let secretKey = "secret"

    let data = Data(secretKey.utf8)

    var digest = [UInt8](repeating: 0, count:Int(CC_SHA1_DIGEST_LENGTH))

    data.withUnsafeBytes { 

        _ = CC_SHA1($0, CC_LONG(data.count), &digest)

    }

    return data


查看完整回答
反对 回复 2023-03-23
  • 1 回答
  • 0 关注
  • 231 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号