iOS加密——概述

weixin_33724059發表於2016-07-25

一、簡單說明資料安全包含通道加密https和上傳資料加密全問題(一些演算法加密,對稱加密和非對稱加密)。加密演算法通常分為對稱性加密演算法和非對稱性加密演算法:

  1. 對稱性加密演算法,資訊接收雙方都需事先知道密匙和加解密演算法且其密匙是相同的,之後便是對資料進行 加解密了。

  2. 非對稱演算法與之不同,傳送雙方A,B事先均生成一堆密匙,然後A將自己的公有密匙傳送給B,B將自己的公有密匙傳送給A,

  3. 如果A要給B傳送訊息,則先需要用B的公有密匙進行訊息加密,然後傳送給B端,此時B端再用自己的私有密匙進行訊息解密,B向A傳送訊息時為同樣的道理。總而言之:公鑰與私鑰的作用是:用公鑰加密的內容只能用私鑰解密,用私鑰加密的內容只能 用公鑰解密。

  4. 說明
    在開發應用的時候,資料的安全性至關重要,而僅僅用POST請求提交使用者的隱私資料,還是不能完全解決安全問題。
    如:可以利用軟體(比如Charles)設定代理伺服器,攔截檢視手機的請求資料因此:提交使用者的隱私資料時,一定不要明文提交,要加密處理後再提交

  5. 常見的加密演算法MD5 \ SHA \ DES \ 3DES \ RC2和RC4 \ RSA \ IDEA \ DSA \ AES

  6. 加密演算法的選擇
    一般公司都會有一套自己的加密方案,按照公司介面文件的規定去加密

鑰匙串加密操作
MD5:加密後不可逆(只能加密不可解密),我們用於加密使用者的登入密碼
DES:對稱加密(伺服器和客戶端公用同一個祕鑰),缺點:一旦被抓包破解了祕鑰,就能破解所有的傳遞資訊
RSA:非對稱加密(會生成一對祕鑰(公鑰和私鑰)), 通過MAC終端生成兩個.pem檔案,再用vim開啟檔案,獲取裡面的字串(也就是祕鑰),

二、MD5
1.簡單說明
MD5:全稱是Message Digest Algorithm 5,譯為“訊息摘要演算法第5版”效果:對輸入資訊生成唯一的128位雜湊值(32個字元)
2.MD5的特點
(1)輸入兩個不同的明文不會得到相同的輸出值
(2)根據輸出值,不能得到原始的明文,即其過程不可逆
3.MD5的應用
由於MD5加密演算法具有較好的安全性,而且免費,因此該加密演算法被廣泛使用主要運用在數字簽名、檔案完整性驗證以及口令加密等方面
4.MD5破解
MD5解密網站:http://www.cmd5.com
5.MD5改進
現在的MD5已不再是絕對安全,對此,可以對MD5稍作改進,以增加解密的難度加鹽(Salt):在明文的固定位置插入隨機串,然後再進行MD5先加密,後亂序:先對明文進行MD5,然後對加密得到的MD5串的字元進行亂序總之宗旨就是:黑客就算攻破了資料庫,也無法解密出正確的明文

三、RSA基本原理
RSA使用"祕匙對"對資料進行加密解密.在加密解密資料前,需要先生成公鑰(public key)和私鑰(private key).
* 公鑰(public key): 用於加密資料. 用於公開, 一般存放在資料提供方, 例如iOS客戶端.
* 私鑰(private key): 用於解密資料. 必須保密, 私鑰洩露會造成安全問題.

   iOS中的Security.framework提供了對RSA演算法的支援.這種方式需要對密匙對進行處理, 根據public key生成證照, 通過private key生成p12格式的密匙.除了Secruty.framework, 也可以將openssl庫編譯到iOS工程中, 這可以提供更靈活的使用方式.

四、base64簡介
Base64編碼可用於在HTTP環境下傳遞較長的標識資訊。例如,在Java Persistence系統Hibernate中,就採用了Base64來將一個較長的唯一識別符號(一般為128-bit的UUID)編碼為一個字串,用作HTTP表單和HTTP GET URL中的引數。在其他應用程式中,也常常需要把二進位制資料編碼為適合放在URL(包括隱藏表單域)中的形式。此時,採用Base64編碼不僅比較簡短,同時也具有不可讀性,即所編碼的資料不會被人用肉眼所直接看到。

文/豔曉(簡書作者)原文連結:http://www.jianshu.com/p/21dc93c2cee4著作權歸作者所有,轉載請聯絡作者獲得授權,並標註“簡書作者”。

相關文章