rsa sha1使用python加密

2024-09-19 23:44:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用python中的rsasha1加密来加密字符串。我有C代码,但我不知道它在python中是怎样的。如果可以的话,请帮帮我!在

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(“<RSAKeyValue><Modulus>oQRshGhLf2Fh...”);
string data = "something";
 byte[] signMain = rsa.SignData(Encoding.UTF8.GetBytes(data), new
SHA1CryptoServiceProvider());
 sign = Convert.ToBase64String(signMain);

Tags: 字符串代码newdatastringbytersasomething
1条回答
网友
1楼 · 发布于 2024-09-19 23:44:41

我在这里用^{} project。它有full RSA signing support。请参阅cryptography section of the Hitchhiker's Guide to Python以获取其他选项。在

NET RSACryptoServiceProvider对象doesn't let you set a padding algorithm,它将始终使用PKCS1v15,因此请在Python代码中选择该填充。在

首先,我要convert that XML document to a PEM format这样你就可以load the public key from that format。我不知道有任何Python库可以直接加载.NET / XKMS 2.0 XML format

from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization

private_key_pem = b'  -BEGIN {format}  -\n...\n  -END {format}  -'
private_key = serialization.load_pem_private_key(
    private_key_pem,
    password=None,
    backend=default_backend()
)

或者,使用Python XML parser可以将该XML文档中的数据馈送给^{}和{a10}对,然后使用^{} method生成一个RSA私钥对象进行签名。您必须使用big endian byte ordering对XML数据进行base64解码并convert from bytes to integer。在

然后可以使用私钥进行签名:

^{pr2}$

相关问题 更多 >