密码学
背景:战争
密码本
232455 3433 3333 8939
起源:凯撒大帝
发展:1977年 RSA 加密算法
原理:公钥,私钥(使用公钥加密,使用私钥解密)
70年代:暴力破解RSA加密50年
现在:根据RSA算法衍生出ASC,DESC
应用程序加密的前提:
1.网络数据传输不能出现明码
2.本地数据存储不能出现明码
一、base64加解密 ->
1.特点:对称加密,可逆
2.原理:
加密前:10101101,10111010,01110110
base64加密–
加密后:00101011,00011011,00101001,110110
十进制 43 27 41 54
对应码表中的值 r b p 2
3.终端命令
内容加密:echo -n “123” | base64
内容解密:echo -n “MTIz” | base64 -D
文件加密:base64 iOS10.rtf -o aaa.txt
文件解密:base64 -D aaa.txt -o iOS10.txt
4.代码
对密码进行base64编码(加密)
NSSring->NSData
NSData *data = [pwd dataUsingEncoding:NSUTF8StringEncoding];
得到base64编码后的内容
userPwd= [data base64EncodedStringWithOptions:0];//支持iOS7之后
对密码进行baser64解密
服务器进行base64解密
NSData *data = [[NSData alloc] initWithBase64EncodedString:userPwd options:0];
NSString *pwd = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
5.钥匙串存储(SSKeychain)->
用途:与NSUserDefault一致
好处:更加安全,而且不是明码存储
二、MD5加密 ->
特点:不对称加密,不可逆
现在暴力破解需要几千年
框架:NSString+Hash
导入第三方框架以及系统 Security.framework框架
使用钥匙串存储:
使用base64加密:
使用MD5加密:
解密啥滴。。。自己解决