117.info
人生若只如初见

python中rsa加密解密怎么实现

在Python中,可以使用rsa库来实现RSA加密和解密。

首先,确保你已经安装了rsa库。可以使用以下命令进行安装:

pip install rsa

接下来,我们将分别介绍RSA加密和解密的实现方法。

RSA加密

import rsa

# 生成RSA公私钥对
(pubkey, privkey) = rsa.newkeys(2048)

# 将公私钥保存到文件
with open('public.pem', 'w+') as f:
    f.write(pubkey.save_pkcs1().decode())
    
with open('private.pem', 'w+') as f:
    f.write(privkey.save_pkcs1().decode())

# 加载公私钥
with open('public.pem', 'r') as f:
    pubkey = rsa.PublicKey.load_pkcs1(f.read().encode())

with open('private.pem', 'r') as f:
    privkey = rsa.PrivateKey.load_pkcs1(f.read().encode())

# 加密
message = 'Hello World!'
crypto = rsa.encrypt(message.encode(), pubkey)

# 输出加密后的结果
print(crypto)

在上述代码中,我们首先生成了一个2048位的RSA公私钥对,并将其保存到文件中。然后,我们加载公私钥,并使用公钥对明文进行加密,得到加密后的结果。

RSA解密

import rsa

# 加载私钥
with open('private.pem', 'r') as f:
    privkey = rsa.PrivateKey.load_pkcs1(f.read().encode())

# 解密
message = rsa.decrypt(crypto, privkey).decode()

# 输出解密后的结果
print(message)

在上述代码中,我们加载了之前生成的私钥,并使用私钥对密文进行解密,得到解密后的明文。

注意:在实际使用时,需要将密文和公私钥保存到安全的地方,并且确保只有授权的用户可以访问私钥。

未经允许不得转载 » 本文链接:https://www.117.info/ask/febd8AzsLAAFUBlw.html

推荐文章

  • Python消息推送功能怎么实现

    要实现Python消息推送功能,可以使用以下几种方法: 使用邮件推送:可以使用Python的smtplib库来发送邮件,将消息作为邮件文本内容发送给指定的收件人。 import ...

  • python数组append函数怎么使用

    在Python中,可以使用append()方法将元素添加到数组中。append()方法是Python中的列表方法,可以在列表的末尾添加一个元素。
    以下是使用append()方法的示例...

  • python中程序异常处理的方法是什么

    在Python中,可以使用以下方法来处理程序异常: 使用try-except语句块:使用try语句块来执行可能引发异常的代码,然后使用except语句块来处理异常。可以在except...

  • python全局变量跨文件调用的方法是什么

    在Python中,全局变量可以通过模块之间的导入来进行跨文件调用。
    假设有两个文件:file1.py和file2.py。要在file2.py中调用file1.py中定义的全局变量,可以...

  • redis序列化对象的方法是什么

    Redis提供了两种方式来序列化对象:1. Redis Object Hashing(ROH):Redis可以将对象序列化为二进制数据,并存储为Redis字符串。这种方式可以使用Redis提供的数...

  • oracle中split的作用是什么

    在Oracle中,split函数的作用是将一个字符串分割成多个子字符串,并返回一个包含这些子字符串的数组。split函数接受两个参数:要分割的字符串和分隔符。它根据分...

  • Thymeleaf中th:text标签不生效怎么解决

    可能有以下几个原因导致Thymeleaf中的th:text标签不生效: 没有正确引入Thymeleaf命名空间。在HTML文件的开头,确保已经引入了正确的Thymeleaf命名空间,如下所示...

  • db2怎么修改char字段长度

    要修改DB2中CHAR字段的长度,需要执行以下步骤: 使用ALTER TABLE语句修改表结构。例如,要将表名为table_name的表中的char字段名为column_name的长度从current_...