【实验】RSA数据加密与解密
实验名称:RSA数据传输加密
实验原理:使用 python 生成 RSA 秘钥文件,再使用其秘钥文件对要传输的明文信息进行加密和解密
实验目的:使用 python 的 rsa 模块生成秘钥文件,并使用秘钥文件进行加解密
实验环境:python编译环境
实验流程:
- 打开 cmd 命令行,输入命令 pip install rsa,安装 rsa 包。并进入打开 python 查看 rsa 是否安装:命令行进入 python 之后输入 import rsa 导入 rsa 模块,未报错说明该模块已安装 成功能够使用。 
 
 
    
 
   - 新建一个名为 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() | 
- 我们执行我们刚刚编写的keycreate python程序脚本,执行结束后我们便可以在当前文件夹下查看到新创建生成了privkey.pem、pubkey.pem 2个文件 
 
 
   - 我们使用记事本打开这两个文件可以便可以看到生成的秘钥文件 
 
 
    
 
   - 新建一个名为 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”得到一个加密文件;如图所示
 
 
   - 我们接下来对刚才加密的文件进行解密,我们需要通过私钥进行解密,新建一个名为 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')) | 
- 执行Python程序脚本输出我们原来加密的内容“information”; 
 
 
   至此实验成功
 
                    
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号