swift 3.0 加密

加密算法的類別

  • 線性散列加密(MD5):只生成一串不可逆的密文,經(jīng)常用其效驗數(shù)據(jù)傳輸過程中是否經(jīng)過修改,因為相同的生成算法對于同一明文只會生成唯一的密文,若相同算法生成的密文不同,則證明傳輸數(shù)據(jù)進行過了修改

  • 對稱加密(DES/3DES):信息接收雙方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是對數(shù)據(jù)進行加解密了

  • 非對稱加密(RSA):發(fā)送雙方A,B事先均生成一堆密匙,然后A將自己的公有密匙發(fā)送給B,B將自己的公有密匙發(fā)送給A,如果A要給B發(fā)送消 息,則先需要用B的公有密匙進行消息加密,然后發(fā)送給B端,此時B端再用自己的私有密匙進行消息解密,B向A發(fā)送消息時為同樣的道理

MD5

// 橋接文件導入頭文件
#import <CommonCrypto/CommonDigest.h>
extension String {
    var MD5: String! {
        let str = self.cString(using: String.Encoding.utf8)
        let strLen = CC_LONG(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.deallocate(capacity: digestLen)
        return hash as String
    }
}

DES

RSA

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容