栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python rsa加密与填充

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python rsa加密与填充

加密常见的填充模式有三种:RSA_PKCS1_PADDING,RSA_PKCS1_OAEP_PADDING,RSA_NO_PADDING,还有Java常用的加密算法RSA/ECB/OAEPWithSHA256AndMGF1Padding;其中前三种都是比较常见的,这里主要演示最后一种。

from cryptography.hazmat.primitives import  serialization
from cryptography.hazmat.primitives.asymmetric import padding
from cryptography.hazmat.primitives import hashes
from base64 import b64encode
with open('ca-pubkey.pem', 'rb') as f:
    content = f.read()
with open('cakey.pem', 'rb') as fp:
    pri = fp.read()
key = serialization.load_pem_public_key(content)
enc_data = key.encrypt(b'123456', padding=padding.OAEP(mgf=padding.MGF1(hashes.SHA256()),algorithm=hashes.SHA256(), label=None))
print(b64encode(enc_data))  #以base64输出
# RSA/ECB/OAEPWithSHA256AndMGF1Padding
pri_key=serialization.load_pem_private_key(pri,password=None)
src_text = pri_key.decrypt(enc_data,padding=padding.OAEP(mgf=padding.MGF1(hashes.SHA256()),algorithm=hashes.SHA256(), label=None))
print(src_text)

输出示例

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971380.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号