python图像加密模块_使用Pycryp的图像加密和解密
這和加密或解密文本是一樣的。
示例
首先導(dǎo)入一些模塊:from Crypto.Cipher import AES
from Crypto import Random
然后,讓我們生成一個(gè)鍵和一個(gè)初始化向量。key = Random.new().read(AES.block_size)
iv = Random.new().read(AES.block_size)
加密
下面的代碼加載輸入文件input.jpg并對(duì)其進(jìn)行加密,然后將加密的數(shù)據(jù)保存到文件encrypted.enc。在本例中,AES分組密碼與CFB操作模式一起使用。input_file = open("input.jpg")
input_data = input_file.read()
input_file.close()
cfb_cipher = AES.new(key, AES.MODE_CFB, iv)
enc_data = cfb_cipher.encrypt(input_data)
enc_file = open("encrypted.enc", "w")
enc_file.write(enc_data)
enc_file.close()
解密
最后,下面的代碼加載加密文件encrypted.enc并對(duì)其進(jìn)行解密,然后將解密的數(shù)據(jù)保存在文件output.jpg中。enc_file2 = open("encrypted.enc")
enc_data2 = enc_file2.read()
enc_file2.close()
cfb_decipher = AES.new(key, AES.MODE_CFB, iv)
plain_data = cfb_decipher.decrypt(enc_data2)
output_file = open("output.jpg", "w")
output_file.write(plain_data)
output_file.close()
注意
為了簡(jiǎn)單起見(jiàn),加密和解密是在同一個(gè)Python會(huì)話中完成的,因此變量key和iv被立即重用,要測(cè)試此解決方案,您必須在同一個(gè)Python會(huì)話中進(jìn)行加密和解密。當(dāng)然,如果以后要在單獨(dú)的會(huì)話中解密,則需要保存key和iv,并在需要解密時(shí)重新加載它們。
測(cè)試解決方案
現(xiàn)在您可以打開(kāi)output.jpg文件,您將看到與input.jpg中的圖像相同的圖像。
總結(jié)
以上是生活随笔為你收集整理的python图像加密模块_使用Pycryp的图像加密和解密的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【NOIP必备攻略】 基本noilinu
- 下一篇: 手艺人舍bpftrace而取system