应用程序关于用户隐私数据有两个原则:
1. 不能在网络上
"
明文
"传递用户隐私数据
2. 不能在本地
"
明文
"保存用户的隐私数据
1. Base64
================================================================
1> Base64 - 网络上使用最为广泛的一种编码方式!
2> 能够对任何
"
二进制数据
"进行编码,结果只有
65个字符
0~
9, a~z, A~Z, +, /, =
3> 编码之后,就能够通过 URL 就传递二进制数据!
加密算法
一、散列算法
散列(Hash)函数提供了这一服务,它对不同长度的输入消息,产生固定长度的输出。这个固定长度的输出称为原输入消息的“散列”或“消息摘要”
- MD5
32位字符串(国内使用非常多!不安全)
- SHA1
40位字符串
- SHA256
- SHA512
MD5 的破解
www.cmd5.com
解决办法
- 加
"
盐
"(佐料) ,盐要够长,够复杂,保密!
- HMAC + MD5(HASH)
使用一个秘钥,对密码进行加密,然后在进行 HASH,要做两次 HASH
- 版权方面(不能用 MD5 / SHA1)
HASH 是采集数据摘要(指纹),可以判断两个文件是否一致!
用处:例如视频版权!
"youtube.com"
SHA256 对上传的视频进行 HASH,可以用来识别文件是否被修改过!
一、对称加密算法(传统的加密算法)
在加密、解密过程中使用相同的秘钥
优点
算法公开、计算量小、加密速度快、加密效率高
缺点
双方使用相同钥匙,安全性得不到保证
DES 数据加密标准
3DES 使用
3个密钥对同一个数据块进行三次 加密,强度更大,算法是一致的
AES
"
高级
"加密标准(使用最多的)苹果的钥匙串使用的 AES
256 的加密!
加密方式
-ECB 电子密码本
-CBC 密码块链
三、非对称性加密算法
(RSA)
非对称加密算法
------------------------------------------------------------------------------------------
非对称:加密和解密使用不同的密钥
特点:
-用公钥加密就用私钥解密
-用私钥加密就用公钥解密
最有代表性的算法就是 RSA。
RSA 算法最明显的特点:运算速度超级慢!通常不适合做对大的数据做加密!
(1) 找出两个“很大”的质数:P & Q
(2) N = P * Q
(3) M = (P – 1) * (Q – 1)
(4) 找出整数E,E与M互质,即除了1之外,没有其他公约数
(5) 找出整数D,使得E*D除以M余1,即 (E * D) % M = 1
n 经过上述准备工作之后,可以得到:
n E是公钥,负责加密
n D是私钥,负责解密
n N负责公钥和私钥之间的联系
n 加密算法,假定对X进行加密
n (X ^ E) % N = Y
n 根据费尔马小定义,根据以下公式可以完成解密操作
n (Y ^ D) % N = X
n 由于RSA算法的加密解密速度要比对称算法的速度慢很多,在实际应用中,通常采取:
(1) 数据本身的加密解密使用对称加密算法(AES/DES3)
(2) 用RSA算法加密并传输对称算法所需的秘钥