python-RSA-加解密文件--本人亲自实现

首先明确.RSA版本经过试错,选定3.1.4

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple rsa==3.1.4

话不多说,直接上我的代码,分管理端和客户端

'''
管理端
'''

import rsa
import os
from rsa.bigfile import*
(pubkey, privkey) = rsa.newkeys(1024)
print('公钥:',pubkey)
print('私钥:',privkey)

# 保存公/私钥
pub = pubkey.save_pkcs1()
with open('public.pem','wb+') as pubfile:
	pubfile.write(pub)
pri = privkey.save_pkcs1()
with open ('private.pem','wb+') as prifile:
	prifile.write(pri)
print('公/私钥已保存')

# 加密前文件路径
ontology_path='自定义1'

# 加密后文件路径
ontology_sec_path='自定义1_1'


# 导入公钥
with open('public.pem','rb+') as publickfile:
	p = publickfile.read()
pubkey = rsa.PublicKey.load_pkcs1(p)
print('**********公钥已导入,开始RSA加密**********')

# 加密文件
with open(ontology_path, 'rb') as infile, open(ontology_sec_path, 'wb') as outfile:
	encrypt_bigfile(infile, outfile, pubkey)
	print('%s文件已成功RSA加密'%os.path.basename(ontology_path))



'''
客户端
'''
# # 导入私钥
import rsa
from rsa.bigfile import*
with open('private.pem','rb+') as privatefile:
     p = privatefile.read()
privkey = rsa.PrivateKey.load_pkcs1(p)
print('**********私钥已导入,开始解密**********')

# 解密前文件路径
ontology_sec_path='自定义1_1'

# 解密后文件路径
ontology_path='自定义1'


# 解密文件
with open(ontology_sec_path, 'rb') as infile, open(ontology_path, 'wb') as outfile:
	decrypt_bigfile(infile, outfile, privkey)

print('文件已成功解密')

过程中出现了

No PEM start marker "b'-----BEGIN RSA PUBLIC KEY-----'" found

折腾了半天找不到解决方案,最后在读写的时候加了个"+"解决了.

以上请诸位参考!!!

2022年3月8日14:31:38

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
RSA算法是一种非对称加密算法,可以用于保护数据的安全性。Python是一种流行的编程语言,具备易学易用、高效性、跨平台等优点,可以方便地实现RSA算法的加解密过程。 Python实现RSA算法的核心是使用Python的大数计算库进行加法、乘法、幂运算等数学运算,以及使用Python的随机数生成器产生相关参数。 RSA算法的加密过程如下:首先选择两个足够大的质数p和q,计算出它们的乘积n=p*q,并选择一个整数e,使得e与(n)φ(n)互质,其中φ(n)=(p-1)*(q-1)。将e和n作为公钥,用来加密明文;接着选择一个整数d,使得d是e的模 φ(n) 的逆元,将d和n作为私钥,用来解密密文。对于一段明文m,加密的过程是将明文转化为一个整数,用公钥加密成一个密文c,解密过程是将密文用私钥解密,得到明文。加密和解密的过程如下: 加密:c = m^e mod n 解密:m = c^d mod n Python实现RSA算法时,需要使用以下步骤: 1. 生成两个足够大的质数p、q; 2. 计算n=p*q和φ(n)=(p-1)*(q-1); 3. 选择一个整数e,使得e与φ(n)互质; 4. 计算d=e的模 φ(n) 的逆元; 5. 将e、d、n作为公、私钥; 6. 对于明文m,计算c = m^e mod n,则密文c为加密后的结果; 7. 对于密文c,计算m = c^d mod n,则明文m为解密后的结果。 Python具备高效、易用、可读性强等优点,可以非常方便地实现RSA算法的加解密过程,是实现这种加密算法非常适合的编程语言
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值