Django token 学前小知识
1,base64 ‘防君子不防小人‘
方法 | 作用 | 参数 | 返回值 |
---|---|---|---|
b64encode | 将输入的参数转化为base64规则的串 | 预加密的明文,类型为bytes;例:b‘guoxiaonao’ | base64对应编码的密文,类型为bytes;例:b‘Z3VveGlhb25hbw==‘ |
b64decode | 将base64串 解密回 明文 | base64密文,类型为bytes;例:b‘Z3VveGlhb25hbw==‘ | 参数对应的明文,类型为bytes;例:b‘guoxiaonao‘ |
urlsafe_b64encode | 作用同b64encode,但是会将 ‘+‘替换成 ‘-‘,将‘/‘替换成‘_‘ | 同b64encode | 同b64encode |
urlsafe_b64decode | 作用同b64decode | 同b64decode | 同b64decode |
代码演示:
import base64 #base64加密 s = b‘guoxiaonao‘ b_s = base64.b64encode(s) #b_s打印结果为 b‘Z3VveGlhb25hbw==‘ #base64解密 ss = base64.b64decode(b_s) #ss打印结果为 b‘guoxiaonao‘
注意:b64encode,b64decode,urlsafe_b64encode,urlsafe_b64decode的参数都是字节串,注意如下转化:
2,SHA-256 安全散列算法的一种(hash)
hash三大特点:
1)定长输出 2)不可逆 3) 雪崩
代码演示:
import hashlib s = hashlib.sha256() #创建sha256对象 s.update(b‘xxxx‘) #添加欲hash的内容,类型为 bytes s.digest() #获取最终结果
3,HMAC-SHA256
HMAC-SHA256是一种通过特别计算方式之后产生的消息认证码,使用散列算法同时结合一个加密密钥。它可以用来保证数据的完整性,同时可以用来作某个消息的身份验证
代码演示:
import hmac #生成hmac对象 #第一个参数为加密的key,bytes类型, #第二个参数为欲加密的串,bytes类型 #第三个参数为hmac的算法,指定为SHA256 h = hmac.new(key, str, digestmod=‘SHA256 ‘) h.digest() #获取最终结果
4,RSA256 非对称加密
1,加密: 公钥加密,私钥解密
2,签名: 私钥签名, 公钥验签