ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

使用Python进行RSA加密

2019-11-02 03:58:15  阅读:373  来源: 互联网

标签:encryption rsa python


我正在尝试使用Python一次用空格填充RSA加密2个单词的单词,但不确定如何处理.

例如,如果加密指数为8,模数为37329,单词为“磅”,我将如何处理?我知道我需要以pow(ord(‘P’)开始,并且需要考虑到单词是5个字符,我需要一次用空格填充2个字符.我不确定,但是我还需要在某处使用<< 8吗? 谢谢

解决方法:

这是一个基本示例:

>>> msg = 2495247524
>>> code = pow(msg, 65537, 5551201688147)               # encrypt
>>> code
4548920924688L

>>> plaintext = pow(code, 109182490673, 5551201688147)  # decrypt
>>> plaintext
2495247524

有关使用RSA样式公钥加密的数学部分的更多工具,请参见ASPN cookbook recipe.

如何将字符打包和解压缩到块中以及如何对数字进行编码的细节有些奥秘.这是一个完整的,有效的RSA module in pure Python.

对于您的特定打包模式(一次2个字符,用空格填充),这应该可以工作:

>>> plaintext = 'Pound'    
>>> plaintext += ' '      # this will get thrown away for even lengths    
>>> for i in range(0, len(plaintext), 2):
        group = plaintext[i: i+2]
        plain_number = ord(group[0]) * 256 + ord(group[1])
        encrypted = pow(plain_number, 8, 37329)
        print group, '-->', plain_number, '-->', encrypted

Po --> 20591 --> 12139
un --> 30062 --> 2899
d  --> 25632 --> 23784

标签:encryption,rsa,python
来源: https://codeday.me/bug/20191102/1988397.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有