广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python怎么实现RSA加密解密
  • 428
分享到

Python怎么实现RSA加密解密

2023-06-30 02:06:37 428人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍了python怎么实现RSA加密解密的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现RSA加密解密文章都会有所收获,下面我们一起来看看吧。一、安装模块pip inst

这篇文章主要介绍了python怎么实现RSA加密解密的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现RSA加密解密文章都会有所收获,下面我们一起来看看吧。

一、安装模块

pip install pycryptodome

二、生成密钥对

  • 密钥对文件生成和读取

  • 代码:

from Crypto.PublicKey import RSAdef create_rsa_pair(is_save=False):    '''    创建rsa公钥私钥对    :param is_save: default:False    :return: public_key, private_key    '''    f = RSA.generate(2048)    private_key = f.exporTKEy("PEM")  # 生成私钥    public_key = f.publickey().exportKey()  # 生成公钥    if is_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)    return public_key, private_keydef read_public_key(file_path="crypto_public_key.pem") -> bytes:    with open(file_path, "rb") as x:        b = x.read()        return bdef read_private_key(file_path="crypto_private_key.pem") -> bytes:    with open(file_path, "rb") as x:        b = x.read()        return b

三、加密

  • 流程:输入文本(str)→字符串编码(默认utf-8)(bytes)→rsa加密(bytes)→base64编码(bytes)→解码为字符串(str)

代码:

import base64from Crypto.Cipher import PKCS1_v1_5from Crypto.PublicKey import RSAdef encryption(text: str, public_key: bytes):# 字符串指定编码(转为bytes)text = text.encode('utf-8')# 构建公钥对象cipher_public = PKCS1_v1_5.new(RSA.importKey(public_key))# 加密(bytes)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 base64from Crypto.Cipher import PKCS1_v1_5from Crypto import Randomfrom Crypto.PublicKey import RSAdef decryption(text_encrypted_base64: str, private_key: bytes):# 字符串指定编码(转为bytes)text_encrypted_base64 = text_encrypted_base64.encode('utf-8')# base64解码text_encrypted = base64.b64decode(text_encrypted_base64 )# 构建私钥对象cipher_private = PKCS1_v1_5.new(RSA.importKey(private_key))# 解密(bytes)text_decrypted = cipher_private.decrypt(text_encrypted , Random.new().read)# 解码为字符串text_decrypted = text_decrypted.decode()return text_decrypted if __name__ == '__main__':# 生成密文public_key = read_public_key()text = '123456'text_encrypted_base64 = encryption(text, public_key)print('密文:',text_encrypted_base64)# 解密private_key = read_private_key()text_decrypted = decryption(text_encrypted_base64, private_key)print('明文:',text_decrypted)

五、完整代码

import base64from Crypto.Cipher import PKCS1_v1_5from Crypto import Randomfrom Crypto.PublicKey import RSA# ------------------------生成密钥对------------------------def create_rsa_pair(is_save=False):    '''    创建rsa公钥私钥对    :param is_save: default:False    :return: public_key, private_key    '''    f = RSA.generate(2048)    private_key = f.exportKey("PEM")  # 生成私钥    public_key = f.publickey().exportKey()  # 生成公钥    if is_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)    return public_key, private_keydef read_public_key(file_path="crypto_public_key.pem") -> bytes:    with open(file_path, "rb") as x:        b = x.read()        return bdef read_private_key(file_path="crypto_private_key.pem") -> bytes:    with open(file_path, "rb") as x:        b = x.read()        return b# ------------------------加密------------------------def encryption(text: str, public_key: bytes):    # 字符串指定编码(转为bytes)    text = text.encode('utf-8')    # 构建公钥对象    cipher_public = PKCS1_v1_5.new(RSA.importKey(public_key))    # 加密(bytes)    text_encrypted = cipher_public.encrypt(text)    # base64编码,并转为字符串    text_encrypted_base64 = base64.b64encode(text_encrypted).decode()    return text_encrypted_base64# ------------------------解密------------------------def decryption(text_encrypted_base64: str, private_key: bytes):    # 字符串指定编码(转为bytes)    text_encrypted_base64 = text_encrypted_base64.encode('utf-8')    # base64解码    text_encrypted = base64.b64decode(text_encrypted_base64)    # 构建私钥对象    cipher_private = PKCS1_v1_5.new(RSA.importKey(private_key))    # 解密(bytes)    text_decrypted = cipher_private.decrypt(text_encrypted, Random.new().read)    # 解码为字符串    text_decrypted = text_decrypted.decode()    return text_decryptedif __name__ == '__main__':    # 生成密钥对    # create_rsa_pair(is_save=True)    # public_key = read_public_key()    # private_key = read_private_key()    public_key, private_key = create_rsa_pair(is_save=False)    # 加密    text = '123456'    text_encrypted_base64 = encryption(text, public_key)    print('密文:', text_encrypted_base64)    # 解密    text_decrypted = decryption(text_encrypted_base64, private_key)    print('明文:', text_decrypted)

运行:

Python怎么实现RSA加密解密

关于“Python怎么实现RSA加密解密”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python怎么实现RSA加密解密”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网Python频道。

--结束END--

本文标题: Python怎么实现RSA加密解密

本文链接: https://www.lsjlt.com/news/327181.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python rsa加密解密怎么实现
    在Python中,可以使用`cryptography`库来实现RSA加密和解密。以下是一个示例: from cryptography...
    99+
    2023-10-26
    python
  • Python怎么实现RSA加密解密
    这篇文章主要介绍了Python怎么实现RSA加密解密的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现RSA加密解密文章都会有所收获,下面我们一起来看看吧。一、安装模块pip inst...
    99+
    2023-06-30
  • Python实现RSA加密解密
    目录前言一、安装模块二、生成密钥对三、加密四、解密五、完整代码前言 加密技术在数据安全存储,数据传输中发挥着重要作用,能够保护用户隐私数据安全,防止信息窃取。RSA是一种非对称加密技...
    99+
    2022-11-10
  • 怎么利用Python实现RSA加密解密
    这篇文章主要介绍“怎么利用Python实现RSA加密解密”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么利用Python实现RSA加密解密”文章能帮助大家解决问题。RSA加密实验基本流程:一、选取...
    99+
    2023-06-29
  • python实现RSA加密(解密)算法
    RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。 今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击...
    99+
    2022-06-04
    算法 python RSA
  • python rsa 加密解密
    最近有需求,需要研究一下RSA加密解密安全;在网上百度了一下例子文章,很少有文章介绍怎么保存、传输、打印加密后的文本信息,都是千篇一律的。直接在一个脚本,加密后的文本信息赋于变量,然后立马调用解密。仔细想了...
    99+
    2022-06-04
    加密解密 python rsa
  • Python RSA加密解密
    一、RSA加密算法 RSA加密算法是一种非对称加密算法,加密的秘钥是由公钥和私钥两部分组成秘钥对,公钥用来加密消息,私钥用来解密消息,公钥是公开的,给对方进行加密,私钥则是用户自己保留,用来对加密的数...
    99+
    2023-09-03
    python RSA 加密 解密
  • PHP实现RSA加密解密
    目录 安装phpseclib  代码编写 1.依赖引用 2.创建密钥 3.公钥加密 4.私钥解密 总结   安装phpseclib PHP安全通信库phpseclib,可以使用它来操作OpenSSL、GMP、libnaid或mcrypt...
    99+
    2023-09-08
    RSA phpseclib php 非对称加密
  • python实现rsa加密
    一 代码 import rsa key = rsa.newkeys(3000)#生成随机秘钥 privateKey = key[1]#私钥 publicKey = key[0]#公钥 message ='sanxi Now is b...
    99+
    2023-01-31
    python rsa
  • java怎么实现rsa加密解密文件
    要在Java中实现RSA加密和解密文件,可以使用Java Cryptography Architecture(JCA)提供的RSA算...
    99+
    2023-10-26
    java
  • Go语言怎么实现RSA加密解密
    这篇文章将为大家详细讲解有关Go语言怎么实现RSA加密解密,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。go是什么golang是一种编译语言,可以将代码编译为机器代码,编译后的二进制文件可以直接部署到目标...
    99+
    2023-06-14
  • 用 Python 来实现 RSA 加解密
    昨天看到一篇英文文章[1],展示了如何用 Python 来实现 RSA 算法,代码的逻辑与前文一文搞懂 RSA 算法一样,不太熟悉 RSA 的朋友可以看一下一文搞懂 RSA 算法,里面对什么是 RSA,RSA 的数学原理进行了说明,并举了一...
    99+
    2023-05-14
    Python RSA 加解密
  • 利用Python实现RSA加密解密方法实例
    目录前言一、安装模块二、生成密钥对三、加密四、解密五、完整代码总结前言 加密技术在数据安全存储,数据传输中发挥着重要作用,能够保护用户隐私数据安全,防止信息窃取。RSA是一种非对称加...
    99+
    2022-11-10
  • android md5加密与rsa加解密实现代码
    代码如下: import java.io.UnsupportedEncodingException; import java.security.MessageDigest; ...
    99+
    2022-06-06
    加密 rsa md5加密 Android
  • Python使用RSA库加密和解密
    一、rsa库(推荐) 1、公钥加密、私钥解密 # -*- coding: utf-8 -*- import rsa # rsa加密 def rsaEncrypt(str): ...
    99+
    2022-11-11
  • 怎么实现security.js RSA加密与java客户端解密
    本篇文章给大家分享的是有关怎么实现security.js RSA加密与java客户端解密,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  在通常的http协议的网站中直接提交数...
    99+
    2023-06-02
  • Go语言 如何实现RSA加密解密
    RSA是一种非对称加密算法,它的名字是由它的三位开发者,即RonRivest、AdiShamir和LeonardAdleman 的姓氏的首字母组成的(Rivest-Shamir-Ad...
    99+
    2022-11-12
  • Vue项目怎么实现rsa加密
    这篇“Vue项目怎么实现rsa加密”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue项目怎么实现rsa加密”文章吧。安装j...
    99+
    2023-07-02
  • 【RSA加密/解密】PKCS1_OAEP和PKCS1_v1_5两种填充方案【python RSA密钥对生成、密码加密、密文解密、pycharm安装Crypto】
    一、PKCS1_OAEP和PKCS1_v1_5是公钥加密标准中的两种填充方案。 PKCS1_OAEP(Optimal Asymmetric Encryption Padding)是一种更安全的填充方案...
    99+
    2023-10-26
    算法 开发语言 python pycharm
  • RSA如何实现C# 加密
    RSA如何实现C# 加密,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。RSA实现C# 加密首先我们来了解下什么是RSA ,它属于不对称加密,其原理就是使用一个公...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作