1.网络安全:(1)网络中传输数据都会被监控到(2)本地存储也是不安全的 因为会被越狱破解
2.任何加密解密的操作就是对二进制进行操作 //加密-指定base64编码的方式0 //解密-忽略未知的字符0
3.base64 本质是编码不是加密
可以将任意的二进制数据编码成字符串
4.加密方式
(1)对称算法:加密解密都使用相同的密钥 速度快 适合对大数据加密 安全性相对较低DES 3DES AES
(2)非对称算法:算法公开 可逆的加密算法 用公钥加密 用私钥解密 用私钥加密 用公钥解密 速度慢 适合对小数据传输加密 安全性高 RSA
(3)散列算法:md5 不可逆
5.MD5可以破解 字典遍历 暴力破解
6.防止被暴力破解:(1)加盐:使字符串变复杂 难以破解(2)HMAC(3)MD5+时间 一个字符串key 进行md5计算 把原密码和之前生成的md5值再进行hmac加密 从服务器获取当前时间到分钟 的字符串 第二步 产生的hmac值+时间 和第一步产生的md5值进行hmac加密 json反序列化 (4)存在系统的钥匙串(对称加密)
7.自动登录 重构
8.上传文件 原理(发送请求)(1) 请求头 改post和content-type
9.上传单个文件就是根据http协议规定的格式进行上传 //请求头 //post request.HTTPMerhod //Content-type :告诉服务器上传文件的类型//请求体 //拼接请求体 (从浏览器中获取格式) //发送请求
json序列化 发送json数据到指定的PHP页面
json序列化使用的条件(1)最外层必须是数组或者字典 (2) 所有的对象必须是NSString NSNumber NSArray NSDictionary OR NSNull (3)所有字典的keys必须是NSString