首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cocapod安装CryptoSwift中的错误获取

cocapod安装CryptoSwift中的错误获取
EN

Stack Overflow用户
提问于 2017-03-21 14:32:02
回答 1查看 249关注 0票数 1

我成功地安装了一个cryptoSwift,在我的xcode项目中使用swift2获得了sha-2。但是安装后,当我构建项目时,它在荚文件中显示了很多错误。为什么我会得到这个错误。我做错了什么?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-21 15:16:08

因为没有“沙-2”之类的东西,确切地说,哪种散列是真正需要的还不清楚。假设sha-2意味着一个沙二系列哈希函数,那么常见的选择是SHA-256和SHA-512。

使用通用Crypoto (Swift2)的示例

代码语言:javascript
复制
func sha256(string: String) -> [UInt8] {
    var digest = [UInt8](count: Int(CC_SHA256_DIGEST_LENGTH), repeatedValue: 0)
    if let data = string.dataUsingEncoding(NSUTF8StringEncoding) {
        CC_SHA256(data.bytes, CC_LONG(data.length), &digest)
    }
    return digest
}

测试

代码语言:javascript
复制
let testString = "testString"
let testHash = sha256(testString)
print("testHash: \(testHash)")

let testHashNSData = NSData(bytes:testHash, length:testHash.count)
print("testHashNSData: \(testHashNSData)")

let testHashBase64 = testHashNSData.base64EncodedStringWithOptions([])
print("testHashBase64: \(testHashBase64)")

输出:

代码语言:javascript
复制
testHash: [74, 207, 11, 57, 217, 196, 118, 103, 9, 163, 104, 159, 85, 58, 192, 26, 181, 80, 84, 95, 250, 69, 68, 223, 192, 178, 206, 168, 47, 186, 2, 163]
testHashNSData: <4acf0b39 d9c47667 09a3689f 553ac01a b550545f fa4544df c0b2cea8 2fba02a3>
testHashBase64: Ss8LOdnEdmcJo2ifVTrAGrVQVF/6RUTfwLLOqC+6AqM=

使用通用Crypoto (Swift3)的示例

代码语言:javascript
复制
func sha256(string: String) -> Data? {
    let messageData = string.data(using:String.Encoding.utf8)!
    var digestData = Data(count: Int(CC_SHA256_DIGEST_LENGTH))

    _ = digestData.withUnsafeMutableBytes {digestBytes in
        messageData.withUnsafeBytes {messageBytes in
            CC_SHA256(messageBytes, CC_LONG(messageData.count), digestBytes)
        }
    }
    return digestData
}

测试

代码语言:javascript
复制
let testString = "testString"
let testHash = sha256(string:testString)
print("testHash: \(testHash!.map { String(format: "%02hhx", $0) }.joined())")

let testHashBase64 = testHash!.base64EncodedString()
print("testHash: \(testHasBase64)")

输出:

代码语言:javascript
复制
testHash: 4acf0b39d9c4766709a3689f553ac01ab550545ffa4544dfc0b2cea82fba02a3  
testHashBase64: Ss8LOdnEdmcJo2ifVTrAGrVQVF/6RUTfwLLOqC+6AqM=

注意:在桥接标题中添加:

代码语言:javascript
复制
#import <CommonCrypto/CommonCrypto.h>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42930043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档