gpt4 book ai didi

使用 XOR 的图像加密

转载 作者:行者123 更新时间:2023-12-02 17:53:01 28 4
gpt4 key购买 nike

好的,我正在处理一个视频处理项目,这包括对每一帧进行加密并将其写入文件(outputenc.avi)。我使用 key.jpg 使用 XOR 操作加密每个文件,并且进展顺利,但问题是在解密过程中我得到一个嘈杂的原始图像, key 和正在处理的帧是尺寸为 384 * 288 的灰度图像。

加密

capWebcam.read(matOriginal);
if(matOriginal.empty()==true)
return;
cv::Mat temp;
cv::resize(matOriginal,matOriginal,dsize,0,0,cv::INTER_CUBIC);
cv::cvtColor(matOriginal,matProcessed,CV_BGR2GRAY);

cv::bitwise_xor(matProcessed,key,temp);
output_enc_cap.write(temp);

解密
capfile.read(temp);
if(temp.empty()==true)
return;

cvtColor(temp,temp,CV_BGR2GRAY);
cv::bitwise_xor(temp,key,temp);

最佳答案

您的代码还有更多问题:

首先,将帧转换为灰度:

cv::cvtColor(matOriginal,matProcessed,CV_BGR2GRAY);

然后将其发送到您的文件。从这一点开始,没有办法恢复您的彩色图像。

然后,您将使用(很可能有损)编解码器保存图像。有损编解码器会在此过程中丢失一些信息。它只保证压缩图像看起来与原始图像相似。不保证它会是相同的。并且因为“加密”的图像是噪声,结果也会是噪声。但可能是完全不同的噪音。

然后,这条线尝试就地执行无法就地工作的算法。但更重要的是,您在文件中编写了灰度图像,然后尝试将其转换为灰度图像,就好像它是彩色一样。完全废话。
cvtColor(temp,temp,CV_BGR2GRAY);

然后,您在一张不是“加密”图像的图像上尝试“解密算法”。

抱歉,您的代码中的每一行都是胡说八道。

所以,我的建议是从低处开始:了解编解码器,了解加密和安全性,阅读其他人在这个主题上所做的事情,然后开始。

顺便说一句,创建自己的加密算法并不是最好的主意(至少当您不是密码学专家时):
https://security.stackexchange.com/questions/25585/is-my-developers-home-brew-password-security-right-or-wrong-and-why

关于使用 XOR 的图像加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15561668/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com