python加密算法

常用的加密算法说明

  • 单向加密(不可解密):md5,sha
  • 对称加密(加密与解密秘钥是一样的):AES,DES
  • 非对称加密(有公钥和私钥):RSA,DSA
  • base64算法:不是加密,它是编码解码

md5加密

import hashlib
# 传入需要加密的数据
data="test_data"
md = hashlib.md5()
md.update(data.encode("utf8"))
print(md.hexdigest())

sha1加密

import hashlib
# 传入需要加密的数据
data="test_data"
sha = hashlib.sha1()
sha.update(data.encode('utf-8')) 
print(sha.hexdigest())

des加密

# 前端提交的数据加密,请求体中加密---》一般使用AES,DES---》要在后端解密

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

from Cryptodome.Cipher import DES
key = b'12345678'
data = "test_data"
count = 8 - (len(data) % 8)
plaintext = data + count * "="
des = DES.new(key, DES.MODE_ECB)
#加密
ciphertext = des.encrypt(plaintext.encode())
print(ciphertext)
#解密
plaintext = des.decrypt(ciphertext)
plaintext = plaintext[:(len(plaintext)-count)]
print(plaintext)

RSA加密

# 安装模块
# pip3 install rsa

import rsa
# 返回 公钥加密 私钥解密
public_key, private_key = rsa.newkeys(1024)
print(public_key)
print(private_key)

# 传入数据
plaintext = b"test_data"

# 公钥加密
ciphertext = rsa.encrypt(plaintext, public_key)  
print('公钥加密:',ciphertext)

# 私钥解密
plaintext = rsa.decrypt(ciphertext, private_key) 
print('私钥解密:',plaintext)

### 使用私钥签名
plaintext = b"test_data"
sign_message = rsa.sign(plaintext, private_key, "MD5")
print('私钥签名后:',sign_message)

## 验证私钥签名
plaintext = b"test_data"
method = rsa.verify(b"test_data", sign_message, public_key)
print(method)

base64编码和解码

# 看到结尾有 =  就是base64编码
# base64编码的长度:需为4的倍数,如果不是4的倍数,会自动使用=补齐
# 所以结尾的 = 不会超过3个
import base64
# 编码
res=base64.b64encode(b'test_data1')  # dGVzdF9kYXRhMQ==
print(res)
# 解码
res=base64.b64decode('dGVzdF9kYXRhMQ==')
print(res)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值