Swift-MD5加密

Swift中有的时候会涉及数据加密问题,GitHub有开源的加密算法代码CryptoSwift

MD5生成的是固定的128bit,即128个0和1的二进制位,而在实际应用开发中,通常是以16进制输出的,所以正好就是32位的16进制,也就是32个16进制的数字。

Swift中如果只是需要MD5加密,可以自己单独扩展一下字符串,需要新建一个OC文件,在xx-Bridging-Header.h 文件中导入OC文件:

#import <CommonCrypto/CommonDigest.h>

需要在BuildSetting中确认桥接文件是否一致:


FlyElephant.png

实现代码:

extension String {
    
    func md5() -> String {
        let str = self.cString(using: String.Encoding.utf8)
        let strLen = CUnsignedInt(self.lengthOfBytes(using: String.Encoding.utf8))
        let digestLen = Int(CC_MD5_DIGEST_LENGTH)
        let result = UnsafeMutablePointer<CUnsignedChar>.allocate(capacity: digestLen)
        CC_MD5(str!, strLen, result)
        let hash = NSMutableString()
        for i in 0 ..< digestLen {
            hash.appendFormat("%02x", result[i])
        }
        result.deinitialize()
        
        return String(format: hash as String)
    }
    
}

参考链接
http://stackoverflow.com/questions/24123518/how-to-use-cc-md5-method-in-swift-language

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.随便新建一个OC文件会提示新建桥接文件xxx-Bridging-Header. 2.在桥接文件加入#impor...
    Str1ng阅读 1,090评论 0 0
  • 一, 在Swift工程中创建桥接文件 1,创建一个OC类,并创建一个Bridging-Header 2,选择 Cr...
    _杜兜兜_阅读 498评论 0 0
  • 1,建立oc的桥接文件,可任意创建一个oc的文件,Xcode就会提示让创建桥接文件,要检查targets-buil...
    旅途开发者阅读 1,620评论 0 1
  • (1)真的不可能吗? 有这样一个故事。 国王把一个死囚叫到跟前,跟他说,“要么你现在就去死,要么你一年之内给我教会...
    泰伯_斯麦尔阅读 258评论 0 1
  • 阅读,本身就是一场冒险的旅行。 身边有许多喜欢阅读的朋友,不论是小说、杂文还是名著,总有人会跟我说看完一本书真的太...
    南城木清阅读 511评论 0 3