gpt4 book ai didi

python 加密 rsa 问题

转载 作者:太空狗 更新时间:2023-10-30 03:05:37 26 4
gpt4 key购买 nike

python Crypto包中的RSA加密/解密好像有问题:

from Crypto.PublicKey import RSA
from os import urandom
def test(keylen, datalen, rand_len):
k = RSA.generate(keylen)
ok, fail = (0,0)
for i in range(1000):
a = urandom(datalen)
if a == k.decrypt(k.encrypt(a, urandom(rand_len))):
ok += 1
else:
fail += 1
return ok, fail

无论我使用何种 keylen/datalen/rand_len 组合,我都无法 100% 地解密它。这只是我安装的 Crypto 吗?

>>> test(1024,128,0)
(853, 147)
>>> test(1024,127,0)
(996, 4)
>>> test(2048,127,0)
(994, 6)

最佳答案

试试这个:

from Crypto.PublicKey import RSA
from os import urandom
def test(keylen, datalen, rand_len):
k = RSA.generate(keylen)
ok, fail = (0,0)
for i in range(1000):
a = urandom(datalen).lstrip(b'\x00')
if a == k.decrypt(k.encrypt(a, urandom(rand_len))):
ok += 1
else:
fail += 1
return ok, fail

解释:

pycrypto 在内部对数字而不是字节进行操作,这意味着不会考虑前导零。 encryptdecrypt 是非常底层的。

要签名,您应该使用 Signature包 (pycrypto2.5+),负责正确填充您的消息。否则你必须自己填充消息。

关于python 加密 rsa 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11465936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com