我正在使用PyCrypto Python库尝试使用密码加密.jpg图像文件。然而,每当我解密文件并打开它时,它看起来几乎就像彩虹一样,虽然你可以模糊地看到原始图像,但它看起来并不像它。我想知道质量丢失的地方?我的猜测是当我填充文件时(你知道,因此长度是8的倍数,这是DES需要的),我使用'{'字符,当我解密文件时,我使用decryptedFileText .replace('{',''),你知道,去除填充字符,但同时,我可能会删除对图像质量至关重要的其他'{'字符。我想知道是否有人知道填充文件的方法可以解决这个问题,或者我是否完全错过了这个问题。
答案 0 :(得分:1)
当您填充文件时,请确保填充字符与文件中的最后一个字节不同。删除填充时,从文件末尾删除具有相同值的字节,最多连续8个。如果原始文件的长度是8的倍数,则添加8个填充字节,与文件中的最终值不同。
如果以这种方式填充文件,请不要使用replace(),它将对整个文件进行操作,但使用类似decryptedFileText = decryptedFileText.rstrip(decryptedFileText[-1])
的内容。