python cryptography key加密_python加密解密库cryptography使用openSSL生成的密匙加密解密...

本文介绍了如何使用Python的cryptography库进行加密解密操作,包括通过OpenSSL生成RSA密钥对,使用私钥签名和公钥验证,公钥加密和私钥解密。详细讲解了PSS和OAEP填充方式以及Prehashed散列处理大数据签名。
摘要由CSDN通过智能技术生成

密匙使用步骤一般是:

1. 私匙签名,发送签名后的数据, 公匙验证。

2.公匙加密,发送加密后的数据,私匙解密。

一般使用情景是通过 openssl 生成密匙后再操作的。Linux下生成密匙也很简单。

yum 安装 openssl

yum -y install openssl

生成三个密匙文件。

rsa_private_key.pem 私匙文件

rsa_private_key_pkcs8.pem  pkcs8格式私匙,

rsa_public_key.pem 公匙

openssl genrsa -out rsa_private_key.pem 1024

openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out rsa_private_key_pkcs8.pem

openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

导入私匙:

序列化密钥可以选择使用密码在磁盘上进行加密。在这个例子中,我们加载了一个未加密的密钥,因此我们没有提供密码。如果密钥被加密,我们可以传递一个bytes对象作为 password参数。

from cryptography.hazmat.backends import default_backend

from cryptography.hazmat.primitives import serialization

# 已有sar私匙, 导入

with open('Key.pem', 'rb') as key_file:

private_key = serialization.load_pem_private_key(

key_file.read(),

password=None,

backend=default_backend()

)

签名:

私钥可用于签署消息。这允许任何拥有公钥的人验证该消息是由拥有相应私钥的人创建的。RSA签名需要特定的散列函数,并使用填充。以下是message使用RSA 进行签名的示例,带有安全散列函数和填充:

from cryptography.hazmat.backends import default_backend

from cryptography.hazmat.primitives import serialization

from cryptography.hazmat.primitives import hashes

from cryptography.hazmat.primitives.asymmetric import padding

# 已有sar私匙, 导入

with open('Key.pem', 'rb') as key_file:

private_key = serialization.load_pem_private_key(

key_file.read(),

password=None,

backend=default_backend()

)

message = b"aaaa, bbbb, cccc"

# 签名操作

signature = private_key.sign(

message,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值