XOR加密/解密是一种非常基本的机制,其中一个不需要任何密钥来加密。
我在C ++中使用它来进行文件加密/解密。该文件包含安全数据。该文件分为许多固定大小的块,不同的字符用于加密不同的块,使我获得加密文件。
我想知道两件事:
我无法将对openssl等任何加密库的支持添加到我当前的环境中。
感谢您的帮助。
答案 0 :(得分:3)
您已经回答了自己的问题。 XOR"加密",如果你可以称之为,那么永远不会在生产代码中使用。在学术层面,它提供了一个破解加密方案的极好例子,没有经验的密码学家可以对其进行密码分析。过去,这是没用的。但是,与您声明的情况相反,XOR加密确实需要密钥。
撰写本文时的行业标准对称加密算法是AES。 AES用于许多广泛的协议,如TLS和SSH。
对于PCI合规等内容,XOR加密也绝对不可接受。
答案 1 :(得分:3)
是的,有一种更安全的方式来加密文件:AES(高级加密标准)。
由于没有密钥,这不是加密,而是混淆。几乎没有安全性,使用秘密方法无法获得安全性。
这不符合PCI标准,请参阅 PCI Security Standards。
"Schneier's Law":" 任何人,从最无能的业余爱好者到最好的密码学家,都可以创建一个他自己无法破解的算法。& #34;
答案 2 :(得分:0)
XOR加密根本不安全。打破它是微不足道的,几乎可以在任何设备上完成。
不适合PCI合规性。 OWASP在这里提供一些指导: https://www.owasp.org/index.php/Cryptographic_Storage_Cheat_Sheet#Rule_-_Use_strong_approved_cryptographic_algorithms
对于C ++,有许多库可以为您进行加密 - 使用这些库并且不要自己实现它,因为你会弄错它!要查看的一些库是OpenSSL和libgcrypt。