RSA算法以及DES算法对文件加密

								通过RSA算法加密以及DES算法对文件加密 --python
原理:python 利用迭代器读取大文件,然后通过rsa和des混合加密算法对数据进行加密。des是对称性加密算法,rsa是非对称性加密算法。des对文件加密,通过rsa对des的key进行加密。解密时用rsa解密key,然后key解密文件内容。
希望对大家有所帮助。

RSA算法利用python的M2Crypto模块。实现代码如下:
class RSA():
prikey_file = ‘/home/rsakey/key.pem’
public_key = ‘/home/rsakey/pubkey.pem’

'''
input:
     msg:str
     file_name :privatekey file path 
output:bytes
'''

@classmethod
def rsa_encrypt(cls, msg, file_name):
    msg = msg.encode(encoding= 'utf-8')
    rsa_pri = M2Crypto.RSA.load_key(file_name)  #导入密钥
    ctxt_pri = rsa_pri.private_encrypt(msg, M2Crypto.RSA.pkcs1_padding)
    print ('密文:%s'% ctxt_pri,type(ctxt_pri))
    return ctxt_pri

'''
input:
    msg:bytes
    file_name : publickey file path
output:bytes
'''
@classmethod
def rsa_decrypt(cls, msg, file_name):
    with open(file_name, 'rb') as f:
        pub_key = f.read()
    bio = M2Crypto.BIO.MemoryBuffer(pub_key)
    rsa_pub = M2Crypto.RSA.load_pub_key_bio(bio)
    output = rsa_pub.public_decrypt(msg, M2Crypto.RSA.pkcs1_padding)  # 解密
    return output

DES算法实现如下:
class DES():
key = “test_KEY” # 密钥
iv = “test__IV” # 偏转向量

@classmethod
def des_encrypt_key(cls):
    dessecretkey = RSA.rsa_encrypt(cls.key, RSA.prikey_file)
    return dessecretkey

@classmethod
def des_decrypt_key(cls, dessecretkey):
    deskey = RSA.rsa_decrypt(dessecretkey, RSA.public_key)
    return deskey

@classmethod
def des_encrypt_proc(cls, data):
    k = des(cls.key, CBC, cls.iv, pad = None, padmode = PAD_PKCS5)
    d = k.encrypt(data)
    return b2a_hex(d)

@classmethod
def des_descrypt_proc(cls, data, dessecretkey):
    key = cls.des_decrypt_key(dessecretkey)
    k = des(key, CBC, cls.iv, pad=None, padmode= PAD_PKCS5)
    de = k.decrypt(a2b_hex(data), padmode= PAD_PKCS5)
    return a2b_hex(de)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值