iOS用到的加密方式

MD5

MD5的全稱是Message-DigestAlgorithm 5,Message-Digest泛指字節串(Message)的Hash變換,就是把一個任意長度的字節串變換成一定長的大整數。請注意我使用了"字節串"而不是"字符串"這個詞,是因為這種變換只與字節的值有關,與字符集或編碼方式無關。 MD5將任意長度的"字節串"變換成一個128bit的大整數,并且它是一個不可逆的字符串變換算法,換句話說就是,即使你看到源程序和算法描述,也無法將一個MD5的值變換回原始的字符串,從數學原理上說,是因為原始的字符串有無窮多個,這有點象不存在反函數的數學函數。

使用:需要導入第三方框架: NSString+Hash

用途:MD5廣泛用于加密和解密技術上,用戶Login的時候,系統是把用戶輸入的密碼計算成MD5值,然后再去和系統中保存的MD5值進行比較,而系統并不"知道"用戶的密碼是什么。

base64

base64 編碼是現代密碼學的基礎,Base64編碼的思想是是采用64個基本的ASCII碼字符對數據進行重新編碼。

1.原本是 8個bit 一組表示數據,改為 6個bit一組表示數據,不足的部分補零,每 兩個0 用 一個 = 表示

2.用base64 編碼之后,數據長度會變大,增加了大約 1/3 左右.(8-6)/6

SSKeyChain鑰匙串

我們將用戶的賬號信息保存到鑰匙串中能保證數據安全的原因是因為只有蘋果公司才知道鑰匙串保存在內存中的哪個位置。

鑰匙串訪問的第三方框架SSKeychain

簡單使用:

參數介紹

Password :需要存儲的密碼信息.

Service :用來標識 app ,app的唯一標識符.

account :賬戶信息,當前密碼所對應的賬號.


非對稱加密

常見的公鑰加密算法有:RSA、ElGamal、背包算法、Rabin(RSA的特例)、迪菲-赫爾曼密鑰交換協議中的公鑰加密算法、橢圓曲線加密算法(英語:Elliptic Curve Cryptography, ECC)。使用最廣泛的是RSA算法(由發明者Rivest、Shmir和Adleman姓氏首字母縮寫而來)是著名的公開秘鑰加密算法。

RSA簡要步驟

RSA使用"秘匙對"對數據進行加密解密.在加密解密數據前,需要先生成公鑰(public key)和私鑰(private key).

公鑰(public key): 用于加密數據. 用于公開, 一般存放在數據提供方, 例如iOS客戶端.

私鑰(private key): 用于解密數據. 必須保密, 私鑰泄露會造成安全問題.

1.生成1024位私鑰 openssl genrsa -out private_key.pem 1024

2.根據私鑰生成CSR文件 openssl req -new -key private_key.pem -out rsaCertReq.csr

3.根據私鑰和CSR文件生成crt文件 openssl x509 -req -days 3650 -in rsaCertReq.csr -signkey private_key.pem -out rsaCert.crt

4.為IOS端生成公鑰der文件 openssl x509 -outform der -in rsaCert.crt -out public_key.der

5.將私鑰導出為這p12文件 openssl pkcs12 -export -out private_key.p12 -inkey private_key.pem -in rsaCert.crt

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

推薦閱讀更多精彩內容

  • /**ios常見的幾種加密方法: 普通的加密方法是講密碼進行加密后保存到用戶偏好設置( [NSUserDefaul...
    彬至睢陽閱讀 2,974評論 0 7
  • 本文轉載自:http://www.cnblogs.com/fengmin/p/5958967.html 任何應用的...
    mrjiangshao閱讀 609評論 0 1
  • 聲明:本文轉載 編程小翁 原創, HTTP in iOS你看我就夠。 HTTP屬于老話題了,在項目中我們經常需要往...
    李華光閱讀 1,432評論 0 1
  • 為什么要做直播平臺百科或平臺史記,簡單的說就是要進一步將觀眾主播和平臺綁在一起,同時營造一種平臺文化和品牌。讓觀眾...
    missly117閱讀 140評論 0 0