python rsa加密,rsa加密算法Python代码
这几天一直在尝试用Python实现RSA算法。下面这篇文章主要介绍用Python实现RSA加解密的相关信息。通过示例代码介绍的非常详细,有需要的朋友可以参考一下。
00-1010前言一、安装模块二、密钥对的生成三、加密四、解密五、完整的代码摘要
目录
加密技术在数据安全存储和数据传输中起着重要的作用,可以保护用户的隐私和数据安全,防止信息被窃取。RSA是一种非对称加密技术,已经广泛应用于软件和网页中。本文将介绍RSA加密和解密在python中的实现。原理:公钥加密,私钥解密解释:具体过程的解释请参考代码前的评论RSA加密实验基本流程:。
1.选取两个大素数p和q,计算得到n和phi _ n。
二、选择常用的e=0x10001,方便优化幂运算向左移位,加快运算速度。
第三,使用扩展的欧几里德算法计算D。
4.输入明文A,将明文转换成可以用于计算的数字形式。
5.对A使用快速取幂模得到密文B,以十六进制显示。
RSA解密流程:
第六,对B进行快速幂运算,得到明文A,并以字符的形式显示出来。
前言
安装pycryptodome
一、安装模块
从加密中生成并读取密钥文件的代码。公钥导入RSA
def create _ RSA _ pair(is _ save=False):
创建rsa公钥-私钥对
: param is _ save : default : false
:return:公钥,私钥
f=RSA.generate(2048)
private _ key=f . export key( PEM )#生成私钥
Public _ key=f.publickey()。Exportkey () #生成公钥
如果是_save:
with open( crypto _ private _ key . PEM , wb) as f:
f.write(private_key)
with open( crypto _ public _ key . PEM , wb) as f:
f.write(public_key)
返回公钥,私钥
def read _ public _ key(file _ path= crypto _ public _ key . PEM )-字节:
用open(文件路径, rb )作为x:
b=x.read()
返回b
def read _ private _ key(file _ path= crypto _ private _ key . PEM )-字节:
用open(文件路径, rb )作为x:
b=x.read()
返回b
二、生成密钥对
流程:输入文本(str)字符串编码(默认utf-8)(字节)rsa加密(字节)base64编码(字节)解码为字符串(str)代码:导入base64
来自Crypto。密码导入PKCS1_v1_5
来自Crypto。公钥导入RSA
def加密(text: str,public_key: bytes):
# String指定编码(转换为字节)
text=text.encode(utf-8 )
#构建一个公钥对象
cipher _ public=PKCS1 _ v1 _ 5 . new(RSA . import key(public _ key))
#加密(字节
)
text_encrypted = cipher_public.encrypt(text)
# base64编码,并转为字符串
text_encrypted_base64 = base64.b64encode(text_encrypted ).decode()
return text_encrypted_base64
if __name__ == __main__:
public_key = read_public_key()
text = 123456
text_encrypted_base64 = encryption(text, public_key)
print(密文:,text_encrypted_base64)
四、解密
说明:解密流程与加密流程相反(按照加密流程逆序解密)
流程:输入文本(str)→字符串编码(默认utf-8)(bytes)→base64解码(bytes)→rsa解密(bytes)→解码为字符串(str)
代码:
import base64
五、完整代码
import base64
总结
到此这篇关于利用Python实现RSA加密解密的文章就介绍到这了,更多相关Python RSA加密解密内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。