加密方式对比
加密从是否可解分为(可逆加密,不可逆加密),可逆又分为(非对称加密、对称加密)
如图:
可逆加密(可加可解)
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