加密從是否可解分為(可逆加密,不可逆加密),可逆又分為(非對稱加密、對稱加密)
如圖:

可逆加密(可加可解)
RSA (非對稱加密)小數據加密 公鑰、私鑰 不同 (一般公鑰加,私鑰解,配合base64使用)
AES (對稱加密)大數據加密 共用一把鑰匙 (加解同一把鑰匙)
不可逆加密(不可解)
HASH(國內MD5加鹽比較主流)
所謂加鹽就是目標數據再拼接上鹽(僅前端、后台知道)然后MD5
HMAC (國外較多)其實是HASH + KEY 分別進行HASH (KEY僅前端、后台知道,用於身份認證)。不同於加鹽是分別HASH, 而加鹽是加到消息體然后HASH
綜上所述:不可逆加密主要是簽名認證,消息可以以明文發送,外加簽名,主要防篡改。不可逆加密,如果發送密文,完全不可知。
若要保證數據安全可以自己各種加密組合
iOS RSA兩種加密方式
1.openssll庫 (支付寶就是使用這種方式)
優點:能夠用.pem 文件加密。
缺點:openssl需要自己合成,依賴靜態庫,引入文件需要手動修改headerserchpath 和 libraryserchpath .比較麻煩。也可進行長加密,但要修改東西比較多。且不穩定。
2.原生
優點:可以隨意加解密(不主張太長),只需要導入secrect.framework(xcode8上發現不導入也可以)。穩定
缺點:公鑰.der 私鑰.p12
公鑰私鑰:默認是pem格式,iOS原生支持 公鑰.der 私鑰.p12。JAVA 要用 私鑰pkcs8 公私鑰都是pem格式
參考文章:
CA (Certificate Authority的縮寫,也叫“證書授權中心”)
http://blog.csdn.net/cws1214/article/details/16860569
幾種加密算法的異同
http://blog.csdn.net/cws1214/article/details/18604075
HASH (MD5(MD全稱Message Digest,又稱信息摘要算法),SHA1(SHA全稱Secure Hash Standard,又稱安全哈希標准)… … )加密
http://blog.csdn.net/cws1214/article/details/47177929
http://blog.csdn.net/xn4545945/article/details/36755117 (加鹽)
HMAC(哈希運算消息認證碼(Hash-based Message Authentication Code)國外較多)(其實還是HASH,只不過加入了認證的key)
http://www.cnblogs.com/songhan/archive/2012/07/29/2613898.html
AES加密(高級加密標准(英語:Advanced Encryption Standard)
http://www.jianshu.com/p/16930be4dddc
http://blog.csdn.net/showhilllee/article/details/29597241
http://blog.csdn.net/showhilllee/article/details/29597241
RSA(發明者首字母1977。1973年英國科學家一人發現,但被列為絕密)加密
http://www.huangyibiao.com/archives/244
fopen函數
http://www.cnblogs.com/emanlee/p/4418163.html
openssl庫
https://github.com/openssl/openssl
http://www.qmailer.net/archives/216.html
編譯openssl庫(或者拷貝支付寶demo里的,比較省事)
http://wenku.baidu.com/link?url=hmzlpuIOTFLziMa38V-xLXmMwSRHXROnAYlf98XAAH8K7JWfiQ8H68i2Atmn6J4vuIEHRHFc5P-RtWCL4xa5AhcOtDh3nXlp8eT6S-CL0Nu
RSAPading模式
https://www.douban.com/note/338531480/
RSA密鑰生成
http://www.cnblogs.com/KiVen2015/p/5321574.html
RSA原生加密(最好的)
http://blog.csdn.net/zhangmengleiblog/article/details/51362761
在線生成密鑰
http://web.chacuo.net/netrsakeypair
