iOS加密——概述
一、簡單說明資料安全包含通道加密https和上傳資料加密全問題(一些演算法加密,對稱加密和非對稱加密)。加密演算法通常分為對稱性加密演算法和非對稱性加密演算法:
對稱性加密演算法,資訊接收雙方都需事先知道密匙和加解密演算法且其密匙是相同的,之後便是對資料進行 加解密了。
非對稱演算法與之不同,傳送雙方A,B事先均生成一堆密匙,然後A將自己的公有密匙傳送給B,B將自己的公有密匙傳送給A,
如果A要給B傳送訊息,則先需要用B的公有密匙進行訊息加密,然後傳送給B端,此時B端再用自己的私有密匙進行訊息解密,B向A傳送訊息時為同樣的道理。總而言之:公鑰與私鑰的作用是:用公鑰加密的內容只能用私鑰解密,用私鑰加密的內容只能 用公鑰解密。
說明
在開發應用的時候,資料的安全性至關重要,而僅僅用POST請求提交使用者的隱私資料,還是不能完全解決安全問題。
如:可以利用軟體(比如Charles)設定代理伺服器,攔截檢視手機的請求資料因此:提交使用者的隱私資料時,一定不要明文提交,要加密處理後再提交常見的加密演算法MD5 \ SHA \ DES \ 3DES \ RC2和RC4 \ RSA \ IDEA \ DSA \ AES
加密演算法的選擇
一般公司都會有一套自己的加密方案,按照公司介面文件的規定去加密
鑰匙串加密操作
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著作權歸作者所有,轉載請聯絡作者獲得授權,並標註“簡書作者”。
相關文章
- IOS Widget(1):概述iOS
- iOS 登入加密iOS加密
- iOS中加密、解密iOS加密解密
- iOS - 資料加密iOS加密
- iOS Provisioning Portal概述iOS
- 時代億信檔案加密個人版概述加密
- iOS 開發加密做法iOS加密
- iOS 幾種加密方法iOS加密
- iOS MD5加密iOS加密
- windows xp 加密檔案系統(EFS)概述(轉)Windows加密
- iOS視訊流採集概述(AVCaptureSession)iOSAPTSession
- 【iOS開發】多執行緒 - 概述iOS執行緒
- 【Java小工匠聊密碼學】–對稱加密–概述Java密碼學加密
- iOS加密解密演算法iOS加密解密演算法
- iOS開發多執行緒篇-概述iOS執行緒
- IOS多執行緒程式設計:概述iOS執行緒程式設計
- iOS 加密演算法的使用iOS加密演算法
- iOS異或加密演算法iOS加密演算法
- php ios通用的AES加密方法PHPiOS加密
- iOS開發視訊教程 UI部分:1、iOS概述和架構iOSUI架構
- 區塊鏈100講:加密貨幣隱私性概述區塊鏈加密
- 黑馬程式設計師_ios基礎總結1_IOS概述程式設計師iOS
- iOS常見的幾種加密方法iOS加密
- AES加密 – iOS與Java的同步實現加密iOSJava
- iOS開發中AES的加密和解密iOS加密解密
- [拿走直接用] iOS加密:AES+Base64iOS加密
- openssl之EVP系列之2---對稱加密演算法概述 (轉)加密演算法
- iOS端基於RSA公鑰加密和解密iOS加密解密
- iOS 對字串和檔案md5加密iOS字串加密
- iOS實現幾種會用到的加密方式iOS加密
- iPhone之IOS5記憶體管理(ARC技術概述)iPhoneiOS記憶體
- 淺談iOS中常用加密演算法的使用iOS加密演算法
- iOS 9.3:增加護眼模式 備忘錄可加密iOS模式加密
- iOS中使用RSA對資料進行加密解密iOS加密解密
- sqlcipher加密sqlite後iOS環境下FMDB效能影響加密SQLiteiOS
- iOS 加密 base64 sha1 MD5 RSAiOS加密
- 概述
- 巧破某報價大全APP加密引數-iOS逆向抓取APP加密iOS