2016-10-11 60 views
1

我正在尋找一種方法來生成一個md5散列(或等效的32個字符)的字符串,僅使用Xcode 8中的security module與Swift 3。換句話說,不是需要CommonCrypto。swift 3 md5散列字符串(或等價物)只有內置安全模塊

我只發現one post提到這種方法。這篇文章聲稱這種方法只適用於OS X(不是iOS)。

我知道md5不是超級安全的,但我需要與舊網站的兼容性,所以援助將不勝感激。

回答

0

CommonCrypto有什麼問題?它已經可以在每個設備上,簡單,快速和行之有效的:

extension Data { 

    var hexString: String { 
     return map { String(format: "%02hhx", $0) }.joined() 
    } 

    var md5: Data { 
     var digest = [Byte](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH)) 
     self.withUnsafeBytes({ 
      _ = CC_MD5($0, CC_LONG(self.count), &digest) 
     }) 
     return Data(bytes: digest) 
    } 

} 

據我所知的唯一的另一種可能性來計算MD5是喜歡自己在CryptoSwift所使用的添加算法。