Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux(Ubuntu)上使用Swift中的CommonCrypto/CommonHMAC.h获取SHA256_Swift_Linux_Macos_Ubuntu_Perfect - Fatal编程技术网

在Linux(Ubuntu)上使用Swift中的CommonCrypto/CommonHMAC.h获取SHA256

在Linux(Ubuntu)上使用Swift中的CommonCrypto/CommonHMAC.h获取SHA256,swift,linux,macos,ubuntu,perfect,Swift,Linux,Macos,Ubuntu,Perfect,我正在努力建立: static func sha256(string: String) -> String? { if let data = string.data(using: .utf8) { var hash = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH)) data.withUnsafeBytes { _ = CC_SHA256($0, CC_L

我正在努力建立:

static func sha256(string: String) -> String? {
    if let data = string.data(using: .utf8) {
        var hash = [UInt8](repeating: 0,  count: Int(CC_SHA256_DIGEST_LENGTH))
        data.withUnsafeBytes {
            _ = CC_SHA256($0, CC_LONG(data.count), &hash)
        }
        let result = Data(bytes: hash)
        return result.base64EncodedString()
    }
    return nil
}

在Ubuntu 16.04上使用Swift软件包管理器。但是图书馆没有找到。它是否适用于Linux Swift?我如何指出它?如果没有,在Linux Swift中获得SHA256的推荐方法是什么?

我一直在为我的Swift后端使用Perfect,结果发现它们有许多内置的跨平台加密实用程序。新功能是:

static func sha256(string: String) -> String? {
    if let encoded = string.digest(.sha256)?.encode(.base64) {
        return String(validatingUTF8: encoded)
    }
    return nil
}

是的,CommonCrypto仅在苹果平台上可用。对于跨平台解决方案,您应该考虑以下内容。