一、簡(jiǎn)單說明數(shù)據(jù)安全包含通道加密https和上傳數(shù)據(jù)加密全問題(一些算法加密,對(duì)稱加密和非對(duì)稱加密)。加密算法通常分為對(duì)稱性加密算法和非對(duì)稱性加密算法:
對(duì)稱性加密算法,信息接收雙方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是對(duì)數(shù)據(jù)進(jìn)行 加解密了。
非對(duì)稱算法與之不同,發(fā)送雙方A,B事先均生成一堆密匙,然后A將自己的公有密匙發(fā)送給B,B將自己的公有密匙發(fā)送給A,
如果A要給B發(fā)送消息,則先需要用B的公有密匙進(jìn)行消息加密,然后發(fā)送給B端,此時(shí)B端再用自己的私有密匙進(jìn)行消息解密,B向A發(fā)送消息時(shí)為同樣的道理。總而言之:公鑰與私鑰的作用是:用公鑰加密的內(nèi)容只能用私鑰解密,用私鑰加密的內(nèi)容只能 用公鑰解密。
說明
在開發(fā)應(yīng)用的時(shí)候,數(shù)據(jù)的安全性至關(guān)重要,而僅僅用POST請(qǐng)求提交用戶的隱私數(shù)據(jù),還是不能完全解決安全問題。
如:可以利用軟件(比如Charles)設(shè)置代理服務(wù)器,攔截查看手機(jī)的請(qǐng)求數(shù)據(jù)因此:提交用戶的隱私數(shù)據(jù)時(shí),一定不要明文提交,要加密處理后再提交常見的加密算法MD5 \ SHA \ DES \ 3DES \ RC2和RC4 \ RSA \ IDEA \ DSA \ AES
加密算法的選擇
一般公司都會(huì)有一套自己的加密方案,按照公司接口文檔的規(guī)定去加密
鑰匙串加密操作
MD5:加密后不可逆(只能加密不可解密),我們用于加密用戶的登錄密碼
DES:對(duì)稱加密(服務(wù)器和客戶端公用同一個(gè)秘鑰),缺點(diǎn):一旦被抓包破解了秘鑰,就能破解所有的傳遞信息
RSA:非對(duì)稱加密(會(huì)生成一對(duì)秘鑰(公鑰和私鑰)), 通過MAC終端生成兩個(gè).pem文件,再用vim打開文件,獲取里面的字符串(也就是秘鑰),
二、MD5
1.簡(jiǎn)單說明
MD5:全稱是Message Digest Algorithm 5,譯為“消息摘要算法第5版”效果:對(duì)輸入信息生成唯一的128位散列值(32個(gè)字符)
2.MD5的特點(diǎn)
(1)輸入兩個(gè)不同的明文不會(huì)得到相同的輸出值
(2)根據(jù)輸出值,不能得到原始的明文,即其過程不可逆
3.MD5的應(yīng)用
由于MD5加密算法具有較好的安全性,而且免費(fèi),因此該加密算法被廣泛使用主要運(yùn)用在數(shù)字簽名、文件完整性驗(yàn)證以及口令加密等方面
4.MD5破解
MD5解密網(wǎng)站:http://www.cmd5.com
5.MD5改進(jìn)
現(xiàn)在的MD5已不再是絕對(duì)安全,對(duì)此,可以對(duì)MD5稍作改進(jìn),以增加解密的難度加鹽(Salt):在明文的固定位置插入隨機(jī)串,然后再進(jìn)行MD5先加密,后亂序:先對(duì)明文進(jìn)行MD5,然后對(duì)加密得到的MD5串的字符進(jìn)行亂序總之宗旨就是:黑客就算攻破了數(shù)據(jù)庫,也無法解密出正確的明文
三、RSA基本原理
RSA使用"秘匙對(duì)"對(duì)數(shù)據(jù)進(jìn)行加密解密.在加密解密數(shù)據(jù)前,需要先生成公鑰(public key)和私鑰(private key).
* 公鑰(public key): 用于加密數(shù)據(jù). 用于公開, 一般存放在數(shù)據(jù)提供方, 例如iOS客戶端.
* 私鑰(private key): 用于解密數(shù)據(jù). 必須保密, 私鑰泄露會(huì)造成安全問題.
iOS中的Security.framework提供了對(duì)RSA算法的支持.這種方式需要對(duì)密匙對(duì)進(jìn)行處理, 根據(jù)public key生成證書, 通過private key生成p12格式的密匙.除了Secruty.framework, 也可以將openssl庫編譯到iOS工程中, 這可以提供更靈活的使用方式.
四、base64簡(jiǎn)介
Base64編碼可用于在HTTP環(huán)境下傳遞較長(zhǎng)的標(biāo)識(shí)信息。例如,在Java Persistence系統(tǒng)Hibernate中,就采用了Base64來將一個(gè)較長(zhǎng)的唯一標(biāo)識(shí)符(一般為128-bit的UUID)編碼為一個(gè)字符串,用作HTTP表單和HTTP GET URL中的參數(shù)。在其他應(yīng)用程序中,也常常需要把二進(jìn)制數(shù)據(jù)編碼為適合放在URL(包括隱藏表單域)中的形式。此時(shí),采用Base64編碼不僅比較簡(jiǎn)短,同時(shí)也具有不可讀性,即所編碼的數(shù)據(jù)不會(huì)被人用肉眼所直接看到。
文/艷曉(簡(jiǎn)書作者)原文鏈接:http://www.lxweimin.com/p/21dc93c2cee4著作權(quán)歸作者所有,轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),并標(biāo)注“簡(jiǎn)書作者”。