【发布时间】:2013-09-11 11:42:05
【问题描述】:
如果我有一个包含 1024 个字符的字符串和一个简单的异或算法,它仍然很容易破解吗?
const unsigned char Key[1024] = {0x.........};
void EncodeBuffer(unsigned char Buffer[],unsigned int Size) {
unsigned int i = 0,c = 0;
while (i < Size) {
while(c < 1024)
Buffer[i] ^= Key[c++];
i++;
c = 0;
}
}
【问题讨论】:
-
这个问题似乎是题外话,因为它是关于加密,而不是编程。它可能是关于Cryptography 的话题。
-
@Adriano:默默无闻几乎没有安全性。使用唯一随机密钥对数据进行异或运算可能是安全的(只要该密钥从未被重复使用并且至少与消息一样长)
-
@Adriano - 你知道一次性便笺本是什么吗??
-
我同意 OP 的原始方案使用“默默无闻的安全性”,但一次性垫没有“默默无闻的安全性”问题。有一个“共享秘密”,但任何双向密码都是如此,当然保护“秘密”至关重要。
-
@Adriano:通过使用 AES (CTR mode) 加密计数器生成的密钥流对您的数据进行异或运算是相当安全且众所周知的。 XOR 不是问题。
标签: c++ c encryption