前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python加密方法基本库

Python加密方法基本库

作者头像
用户5521279
发布2020-11-02 10:34:47
8870
发布2020-11-02 10:34:47
举报
文章被收录于专栏:搜狗测试搜狗测试

背景

小编之前在做广告接口自动化时,涉及到参数加密解密的逻辑,当时只知道MD5加密,后来从网上查了相关的方法,发现加密算法库有好多,小编特意收集整理如下,希望对大家有所帮助。

MD5加密

算法描述:

MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。md5加密算法是不可逆的,所以解密一般都是通过暴力穷举方法,通过网站的接口实现解密。

实践demo:

import hashlib

m = hashlib.md5()

m.update(str.encode("utf8"))

print(m.hexdigest())

注释事项:

1、update方法只接受bytes类型,否则会报错;这就是要在字符串传入后转换类型的原因。

2、重复调用update(arg)方法,是会将传入的arg参数进行拼接,

也就是说,m.update(a); m.update(b) 等价于m.update(a+b)。

SHA1加密

算法描述:

安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA),SHA1比MD5的安全性更强。对于长度小于2^ 64位的消息,SHA1会产生一个160位的消息摘要。

实践demo:

import hashlib

sha1 = hashlib.sha1()

num= '521'

sha1.update(num.encode('utf-8'))

sha1_num = sha1.hexdigest()

print(sha1_num)

注释事项:

1、update方法只接受bytes类型,否则会报错;同md5加密。

2、重复调用update(arg)方法,同md5加密,多个参数拼接。

HMAC加密

算法描述:

散列消息鉴别码(Hash Message Authentication Code), HMAC加密算法是一种安全的基于加密hash函数和共享密钥的消息认证协议。实现原理是用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即 MAC,并将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证等。

实践demo:

import hmac

message = b'Hello world'

key = b'secret'

h = hmac.new(key,message,

digestmod='MD5')

print(h.hexdigest())

注释事项:

1、hmac.new方法前两个参数都是bytes类型,否则会报错;

DES加密

算法描述:

数据加密标准(Data Encryption Standard),属于对称加密算法。DES是一个分组加密算法,典型的DES以64位为分组对数据加密,加密和解密用的是同一个算法。它的密钥长度是56位(因为每个第8 位都用作奇偶校验),密钥可以是任意的56位的数,而且可以任意时候改变。

实践demo:

from pyDes import des, CBC, PAD_PKCS5

import binascii

# 秘钥

KEY='mHAxsLYz'

def des_encrypt(s):

#加密

secret_key = KEY

iv = secret_key

k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)

en = k.encrypt(s, padmode=PAD_PKCS5)

return binascii.b2a_hex(en)

def des_descrypt(s):

#解密

secret_key = KEY

iv = secret_key

k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)

de = k.decrypt(binascii.a2b_hex(s),

padmode=PAD_PKCS5)

return de

if __name__ == "__main__"

encrypt_str=des_encrypt('testsogou')

print(encrypt_str)

decrypt_str=des_decrypt(encrypt_str)

print(decrypt_str)

注释事项:

1、des_encrypt返回的为加密后的16进制字符串;

2、des_descrypt返回的为解密后字符串。

小结

本期简单介绍MD5加密,SHA1加密,HMAC加密,DES加密这几种算法,感兴趣的小伙伴可以研究下,下期介绍AES加密、RSA加密、ECC加密算法,敬请期待!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档