随笔 - 13  文章 - 0  评论 - 0  阅读 - 3585

【实验】RSA数据加密与解密

实验名称:RSA数据传输加密

实验原理:使用 python 生成 RSA 秘钥文件,再使用其秘钥文件对要传输的明文信息进行加密和解密

实验目的:使用 python 的 rsa 模块生成秘钥文件,并使用秘钥文件进行加解密

实验环境:python编译环境

实验流程:

  1. 打开 cmd 命令行,输入命令 pip install rsa,安装 rsa 包。并进入打开 python 查看 rsa 是否安装:命令行进入 python 之后输入 import rsa 导入 rsa 模块,未报错说明该模块已安装 成功能够使用。

  1. 新建一个名为 keycreate.py 的生成秘钥的文件,使用命令 import rsa 导入 rsa 模块,使 用 rsa 模块下的 newkeys()生成公钥和私钥,并将生成公钥和私钥存入两个变量之中。

释义

代码

导入Python模块 rsa

rsa 导入 rsa 模块,使 用 rsa 模块下的 newkeys()生成公钥和私钥,并将生成公钥和私钥存入两个变量之中;

是将公钥的变量进行重新赋值,先将原公钥进行一 个 pkcs1 的格式转换然后 decode 转码后进行存储。

对转好的文件进行存储;

import rsa

pubkey,privkey = rsa.newkeys(1024)

pubkey = pubkey.save_pkcs1().decode()

pubkeyfile = open('pubkey.pem','w+')

pubkeyfile.write(pubkey)

pubkeyfile.close()

privkey = privkey.save_pkcs1().decode()

privkeyfile = open('privkey.pem','w+')

privkeyfile.write(privkey)

privkeyfile.close()

  1. 我们执行我们刚刚编写的keycreate python程序脚本,执行结束后我们便可以在当前文件夹下查看到新创建生成了privkey.pem、pubkey.pem 2个文件

  1. 我们使用记事本打开这两个文件可以便可以看到生成的秘钥文件

  1. 新建一个名为 crtpt.py 的公钥加密文件,添加一个可以输入的变量 message 作为我们要 加密的明文,读取存储公钥的文件,用命令 pubkeyfile=open('pubkey.pem')打开秘钥文件, 通过 load_pkcs1()去读取从文件中得到的秘钥信息,通过命令 rsa.encrypt() 将明文通过公钥加密,最后存入 crypt 文件中。

释义

代码

导入python模块rsa;

定义用户输入变量message存储预加密明文

读取打开秘钥文件pubkey.pem

通过 load_pkcs1()去读取从文件中得到的秘钥信息

通过命令 rsa.encrypt() 将明文通过公钥加密

import rsa

message = input('Message:')

pubkeyfile = open('pubkey.pem')

pubkey = rsa.PublicKey.load_pkcs1(pubkeyfile.read())

crypt = rsa.encrypt(message.encode(),pubkey)

cryptfile = open('crypt','wb+').write(crypt)

执行python文件脚本 crtpt.py,加密文字信息“information”得到一个加密文件;如图所示

  1. 我们接下来对刚才加密的文件进行解密,我们需要通过私钥进行解密,新建一个名为 decrypt.py 的私钥解密 文件,通过 rsa.PrivateKey.load_pkcs1()命令打开生成的私钥文件并读取私钥,使用命令 rsa.decrypt()对加密内容进行解密并赋值到 message,最后将其输出。

释义

代码

导入python模块rsa;

通过 rsa.PrivateKey.load_pkcs1()命令打开生成的私钥文件并读取私钥;

使用命令 rsa.decrypt()对加密内容进行解密并赋值到 message,最后将其输出。

import rsa

crypt = open('crypt','rb').read()

privkeyfile = open('privkey.pem')

privkey = rsa.PrivateKey.load_pkcs1(privkeyfile.read())

message = rsa.decrypt(crypt,privkey)

print(message.decode('utf-8'))

  1. 执行Python程序脚本输出我们原来加密的内容“information”;

至此实验成功

posted on   汪汪家的碎冰冰  阅读(40)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示