MG--Swift3.0 加密相关方法

本文介绍了Swift3.0中关于加密的方法,包括可逆的Base64编码,以及不可逆的HMAC(HMAC_SHA1, MD5, SHA系列)加密。提供了详细的代码示例,展示了如何在Swift中实现这些加密算法。" 123996365,5035211,Vue3+TypeScript整合vue-router实战教程,"['前端开发', 'Vue', 'Vue3', 'TypeScript', 'vue-router']
摘要由CSDN通过智能技术生成

一、Swift3.0系统提供的base64加密方法(可逆)

extensionString{/**

*  Base64 加密

*  return 加密字符串

*/func encodeToBase64() ->String{        guardletdata = self.data(using:String.Encoding.utf8)else{ print("加密失败");return""}returndata.base64EncodedString(options: Data.Base64EncodingOptions(rawValue:0))//系统提供的方法,iOS7之后可用}/**

*  Base64 解密

*  return 解密字符串

*/func decodeBase64() ->String{        guardletdata = Data(base64Encoded: self,options: Data.Base64DecodingOptions(rawValue:0))else{ print("解密失败");return""}returnString(data: data,encoding:String.Encoding.utf8)!    }}letbase64Str ="明哥"// 打印 "明哥"letencodeStr = base64Str.encodeToBase64()// 打印 "5piO5ZOl"letdecodeStr = encodeStr.decodeBase64()// 打印 "明哥"

打印截图

二、HMAC_SHA1/MD5/SHA1/SHA224… (不可逆)

// MARK: - 加密 HMAC_SHA1/MD5/SHA1/SHA224… /** 需在桥接文件导入头文件 ,因为C语言的库

  • #import <CommonCrypto/CommonDigest.h>

  • #import <CommonCrypto/CommonHMAC.h>

/enum CryptoAlgorithm {// 2,SHA(安全散列算法:Secure Hash Algorithm) // 不可逆/// 加密的枚举选项 HMACcaseMD5, SHA1, SHA224, SHA256, SHA384, SHA512varHMACAlgorithm: CCHmacAlgorithm {varresult: Int =0switchself {case.MD5: result = kCCHmacAlgMD5case.SHA1: result = kCCHmacAlgSHA1case.SHA224: result = kCCHmacAlgSHA224case.SHA256: result = kCCHmacAlgSHA256case.SHA384: result = kCCHmacAlgSHA384case.SHA512: result = kCCHmacAlgSHA512 }returnCCHmacAlgorithm(result) }vardigestLength: Int {varresult: Int32 =0switchself {case.MD5: result = CC_MD5_DIGEST_LENGTHcase.SHA1: result = CC_SHA1_DIGEST_LENGTHcase.SHA224: result = CC_SHA224_DIGEST_LENGTHcase.SHA256: result = CC_SHA256_DIGEST_LENGTHcase.SHA384: result = CC_SHA384_DIGEST_LENGTHcase.SHA512: result = CC_SHA512_DIGEST_LENGTH }returnInt(result) }}extensionString{/*

    func: 加密方法

    - parameter algorithm: 加密方式;

    - parameter key: 加密的key

*/func hmac(algorithm: CryptoAlgorithm,key:String) ->String{letstr = self.cString(using:String.Encoding.utf8)letstrLen = Int(self.lengthOfBytes(using:String.Encoding.utf8))letdigestLen = algorithm.digestLengthletresult = UnsafeMutablePointer.allocate(capacity: digestLen)letkeyStr = key.cString(using:String.Encoding.utf8)letkeyLen = Int(key.lengthOfBytes(using:String.Encoding.utf8))//  CCHmac是系统内部方法CCHmac(algorithm.HMACAlgorithm, keyStr!, keyLen, str!, strLen, result)letdigest = stringFromResult(result:  result,leng
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值