散列函数
:又称哈希函数
,散列算法
,是一种从任何一种数据中建立小的数字“指纹
”的方法。它使用128
位,32
个字符,16进制
表示。(为何是32个字符,由于在16进制中一个字符是0.5个字节,二进制是:128 / 8 = 16,那么十六进制就是:128 / 8 * 2 = 32)算法
好比在 Terminal 中加密密码:1q2w3e --> 对应的 MD5 是 3fde6bb0541387e4ebdadf7c2ff31123
复制代码
pwd = (pwd + salt).MD5
复制代码
这样仍是只能相对安全,若是获取到了你的 salt,那么仍是会被破译。
两次Hash
(两次散列)key
, Client 保存在本地,后面请求就是用这个key。
key
在何时获取了,有两种状况:
C --> 发送数据: pwd = (pwd + (hmac + salt) + date).md5
S --> 接受到数据:先校验date
例如:
服务器下发的是 201812091411, 客户端回传的时 201812091411,可是如今服务器时间是 201812091412,
那么时间对不上,该怎么办?此时服务器会减去一分钟(201812091411)再做对比,此时两个时间是相等的。
服务器就能够作接下来的处理,若是超过服务器限定的时间,就超时,让其从新请求。
复制代码
ECB 安全
openssl enc -aes-128-ecb -K 616263 -nosalt -in msg.txt -out msg.bin
616263: 是key值是abc二进制代码
复制代码
CBCbash
openssl enc -aes-256-cbc -iv 010203040506 -K 616263 -nosalt -in msg.txt -out msg.bin
iv: 是初始化向量,例如:时钟的9点钟方向等
复制代码