加密从是否可解分为(可逆加密,不可逆加密),可逆又分为(非对称加密、对称加密)
如图:
可逆加密(可加可解)
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格式
参考文章:
HASH (MD5(MD全称Message Digest,又称信息摘要算法),SHA1(SHA全称Secure Hash Standard,又称安全哈希标准)… … )加密
(加盐)
AES加密(高级加密标准(英语:Advanced Encryption Standard)
http://www.jianshu.com/p/16930be4dddc
RSA(发明者首字母1977。1973年英国科学家一人发现,但被列为绝密)加密
http://www.huangyibiao.com/archives/244
openssl库
https://github.com/openssl/openssl
http://www.qmailer.net/archives/216.html
编译openssl库(或者拷贝支付宝demo里的,比较省事)
RSAPading模式
https://www.douban.com/note/338531480/
在线生成密钥
http://web.chacuo.net/netrsakeypair