问题描述
我已使用以下代码进行加密。我已完成以下操作。
*将图像转换为RGB格式并以字节为单位读取图像数据
*通过所需的AES模式加密图像数据
*将图像数据转换为与PIL兼容的格式
*将加密的图像数据复制到新图像中并保存它##
filename = "lena1.bmp"
filename_out = "lena1_encrypted"
format = "BMP"
key = "aaaabbbbccccdddd"
def pad(data):
return data + b"\x00"*(16-len(data)%16)
def convert_to_RGB(data):
r,g,b = tuple(map(lambda d: [data[i] for i in range(0,len(data)) if i % 3 == d],[0,1,2]))
pixels = tuple(zip(r,b))
return pixels
def aes_cbc_encrypt(key,data,mode=AES.MODE_CBC):
IV = "A"*16
aes = AES.new(key,mode,IV)
new_data = aes.encrypt(data)
return(new_data)
def reprocess_image(filename):
# Opens image and converts it to RGB format for PIL
im = Image.open(filename)
data = im.convert("RGB").tobytes()
original = len(data)
# Encrypts using desired AES mode (we'll set it to ECB by default)
new = convert_to_RGB(aes_cbc_encrypt(key,pad(data))[:original])
im2 = Image.new(im.mode,im.size)
im2.putdata(new)
#Save image
im2.save(filename_out+"."+format,format)
#print(new)
plt.imshow(im2)
def process_image(filename):
# Opens image and converts it to RGB format for PIL
im = Image.open(filename)
data = im.convert("RGB").tobytes()
original = len(data)
# Encrypts using desired AES mode (we'll set it to ECB by default)
new = convert_to_RGB(aes_cbc_encrypt(key,im.size)
im2.putdata(new)
#Save image
im2.save(filename_out+"."+format,format)
#print(new)
plt.imshow(im2)
process_image(filename)
我被卡在解密部分。请帮助我。以下是加密代码:
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)