RSA演算法以及DES演算法對檔案加密

2021-09-14 02:29:31 字數 2073 閱讀 6503

通過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)

Java實現檔案的RSA和DES加密演算法

根據金鑰型別不同將現代密碼技術分為兩類 對稱加密演算法 秘密鑰匙加密 和非對稱加密演算法 公開金鑰加密 對稱鑰匙加密系統是加密和解密均採用同一把秘密鑰匙,而且通訊雙方都必須獲得這把鑰匙,並保持鑰匙的秘密。非對稱金鑰加密系統採用的加密鑰匙 公鑰 和解密鑰匙 私鑰 是不同的。1 對稱加密演算法 對稱加密...

DES演算法,標頭檔案

2001年02月16日 08 57 00 des演算法,標頭檔案 自己改寫過,請指教 ifndef des h define des h class des private void des unsigned char in,unsigned char out,int blocks void des...

des演算法描述 DES演算法描述簡介

des演算法描述簡介 1 簡介 des是data encryption standard 資料加密標準 的縮寫。它是由ibm公司研製的一種加密演算法,美國國家標準局於1977年公布把它作為非機要部門使用的資料加密標準,二十年來,它一直活躍在國際保密通訊的舞台上,扮演了十分重要的角色 10 des是乙...