Python RSA加密/解密不返回原始消息
初学者在这里,尝试一些RSA加密。我编写了一个python代码,大部分时间返回正确的消息,但有时加密和解密不会返回原始消息 我认为这是我的代码中的一些错误,但一些在线资源也返回了错误: 所选参数包括: p=11 q=269 n=2959 e=13 d=1237 消息=13355 密码文本=1079 解密=1519 我是否错过了RSA的某种限制?文本的一些最小参数大小?您的模数(n)是2959。这意味着您可以使用此系统加密的最大数字是2958 您正在尝试加密号码13355,该号码太大。你得到的结果等于13355 mod 2959,也就是1519 但是为什么呢? 用于实现RSA加密的两个基本公式如下:Python RSA加密/解密不返回原始消息,python,encryption,cryptography,rsa,Python,Encryption,Cryptography,Rsa,初学者在这里,尝试一些RSA加密。我编写了一个python代码,大部分时间返回正确的消息,但有时加密和解密不会返回原始消息 我认为这是我的代码中的一些错误,但一些在线资源也返回了错误: 所选参数包括: p=11 q=269 n=2959 e=13 d=1237 消息=13355 密码文本=1079 解密=1519 我是否错过了RSA的某种限制?文本的一些最小参数大小?您的模数(n)是2959。这意味着您可以使用此系统加密的最大数字是2958 您正在尝试加密号码13355,该号码太大。你得到的
通常这不是问题;RSA通常用于加密与AES等密码一起使用的对称密钥,因此2048位就足够了。如果你真的需要加密一个值≥ n、 您可以使用多条消息。例如,在基2959中,数字13355有两个“数字”——第一个是4,第二个是1519。这些数字可以在接收端重新组合(4*2959+1519=13355)。您可以发布您的编码尝试吗请发布您的编码尝试谢谢!我不知道模数需要大于消息的限制。你能解释一下为什么吗?@LeoBarlach我已经详细解释了答案。希望现在一切都清楚了。谢谢你,斯奎米什。我终于明白了。基本上,如果解密是除法的剩余部分,则结果永远不会大于分母。完全有道理,谢谢!我不知道模数需要大于消息的限制。你能解释一下为什么吗?@LeoBarlach我已经详细解释了答案。希望现在一切都清楚了。谢谢你,斯奎米什。我终于明白了。基本上,如果解密是除法的剩余部分,则结果永远不会大于分母。完全有道理。