swift 3.0 md5加密和sha1加密
程序员文章站
2022-05-12 20:21:27
...
简单记录使用swift3.0开发,加密md5和sha1的方法:Md5Sha1 的demo下载地址:https://github.com/feifeiios/Md5Sha1
先新建一个项目,名为:Md5Sha1。
建一个名为Header.h的文件,在project中设置 ,如图:
在Header.h中,引入代码如下:(此方法为使用MD5加密)
#import <CommonCrypto/CommonDigest.h>//md5
新建Encryption.swift文件,内部代码如下:
extension String {
//MARK: - MD5
func md5() -> String {
let cStr = self.cString(using: String.Encoding.utf8);
let buffer = UnsafeMutablePointer<UInt8>.allocate(capacity: 16)
CC_MD5(cStr!,(CC_LONG)(strlen(cStr!)), buffer)
let md5String = NSMutableString();
for i in 0 ..< 16{
md5String.appendFormat("%02x", buffer[i])
}
free(buffer)
return md5String as String
}
//MARK: - sha1 加密
func sha1() -> String {
//UnsafeRawPointer
let data = self.data(using: String.Encoding.utf8)!
var digest = [UInt8](repeating: 0, count:Int(CC_SHA1_DIGEST_LENGTH))
let newData = NSData.init(data: data)
CC_SHA1(newData.bytes, CC_LONG(data.count), &digest)
let output = NSMutableString(capacity: Int(CC_SHA1_DIGEST_LENGTH))
for byte in digest {
output.appendFormat("%02x", byte)
}
return output as String
}
}
使用时候,代码如下:
let string = "123456"
let string_md5 = string.md5()
let string_sha1 = string.sha1()
print("string = \(string)")
print("string_md5 = \(string_md5)")
print("sting_sha1 = \(string_sha1)")
打印日志:
string = 123456
string_md5 = e10adc3949ba59abbe56e057f20f883e
sting_sha1 = 7c4a8d09ca3762af61e59520943dc26494f8941b
以上为我在项目开发中,使用到的加密方法。如有不同,欢迎留言上一篇: log日志级别与简介
下一篇: 去除重复字符串