首页 > 编程知识 正文

base64加密 && 散列算法(hash)&& HMAC-SHA256三种算法及其在python中的使用

时间:2023-05-04 11:22:14 阅读:255481 作者:3972

目录

Base64加密

base64加密在python中的使用

散列算法,安全散列算法的一种(hash) SHA-256

HMAC-SHA256


    Base64加密

 

 

1.现将字符串拆成每三个字符一组

2.先将原始字符进行8位2进制转换,转换完成后在重新分割

3.每六位二进制一组再转换成十进制,最后按照base64索引值对照表将转换后的十进制变成对应的base64值:

例:

 

 

#base64索引值对照表

 

注:假如只有一个字符

不足六位的添加0,全是空的最终按等于号处理,所以用base64加密后的字符串一定是4的倍数

 

base64加密在python中的使用

在python中需要base64模块

1.import base64     #导入模块

2.base64.b64encode(pbdqd’)                #使用b64encode方法对字符串进行加密

注:字符串前必须加b表示字节串(必须穿字节串)

 

b = base64.b64encode(pbdqd’)

3.base64.b64decode(b)          #解密,因为b已经是字节串,所以直接把b放进去就可以

注:有时在进行加密后会出现‘+’或者‘/’这些符号是不能再url中出现的,所以可以使用Urlsafe_b64encode进行加密,作用是在机密后将‘+’替换成‘-’,将‘/’替换成‘_’这样就不会url地址发生冲突了(用urlsafe_b64decode进行解密)

 

 

 

散列算法,安全散列算法的一种(hash) SHA-256

 

 

特点:定长输出   不可逆   雪崩

在python中使用hashlib库

import hashlib          #导入hashlib库

 

s = hashlib.md5()      #使用md5算法s.update(b‘123456’)                 #将需要加密的字符串以字节串的方式传入

 

s.hesdigest()              #将加密后的字符串按16进制输出,digest是按照二进制进行输出

 

HMAC-SHA256

 

 

1.i mport hmac

#生成hmac对象 #第一个参数为加密的key,bytes类型,

#第二个参数为欲加密的串,bytes类型

#第三个参数为hmac的算法,指定为SHA256

2. h = hmac.new(key, str, digestmod='SHA256 ')

3. h.digest() #获取最终结果

 

最终的字符串就是用hmac签的名

 

将加密的参数以json的方式传给对方,对方在用相同的hmac算法再核对一次,即可通过进行比对结果来确认是否是对方法的签名

{‘content’:’666’,’key’,’1234’,sign:h.hexdigest()}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。