我正在尝试根据sha256将hash设置为密码值。我已经搜索过了,但是没有关于swift 2的信息。这个解决方案对我不起作用
func sha256(data:String) -> String {
let data = self.dataUsingEncoding(NSUTF8StringEncoding)!
var digest = [UInt8](count:Int(CC_SHA256_DIGEST_LENGTH), repeatedValue: 0)
CC_SHA256(data.bytes, CC_LONG(data.length), &digest)
let hexBytes = digest.map { String(format: "%02hhx", $0) }
return hexBytes.joinWithSeparator("")
}
它给出错误:使用未解析的标识符CC_SHA256_DIGEST_LENGTH
1条答案
按热度按时间sczxawaw1#
添加桥接标头并将导入添加到其中:
#import <CommonCrypto/CommonCrypto.h>
雨燕三:
//测试
十六进制数:
雨燕2:
//测试:
输出量:
摘要:错误代码
sunseted文档部分的示例:
支持MD5、SHA1、SHA 224、SHA 256、SHA 384和SHA 512的HMAC(Swift 3+)
这些函数将使用八种加密哈希算法中的一种对字符串或数据输入进行哈希。
name参数将哈希函数名称指定为字符串支持的函数包括MD5、SHA1、SHA 224、SHA 256、SHA 384和SHA 512
此示例需要通用加密
有必要为项目提供一个桥接集管:
#import <CommonCrypto/CommonCrypto.h>
个将Security.framework添加到项目中。
这些函数接受散列名称、要散列的消息、键并返回摘要:
第一个
}
第一个
//范例
输出量:
MD 2、MD 4、MD5、SHA1、SHA 224、SHA 256、SHA 384、SHA 512(SWIFT 3及更高版本)
这些函数将使用八种加密哈希算法中的一种对字符串或数据输入进行哈希。
name参数将散列函数名称指定为字符串
支持的函数包括MD 2、MD 4、MD5、SHA1、SHA 224、SHA 256、SHA 384和SHA 512 a此示例需要通用加密
有必要为项目提供一个桥接集管:
#import <CommonCrypto/CommonCrypto.h>
将Security.framework添加到项目中。
此函数接受散列名称和要散列的字符串,并返回数据:
第一个
示例:
输出量: