【发布时间】:2013-09-29 18:48:59
【问题描述】:
我能够使用此密钥加密和解密消息: string key = "zyxwvutsrqponmlkjihgfedcba";没有任何问题,但我想使用更复杂的密钥。这是我现在使用的密钥:string key = "zwtqnkhebyvspmjgdaxurolifc";
邮件按预期加密,但当我尝试解密时,邮件并未恢复到正常状态。下面是代码:
string Security::DecWordUsingCrypto(string word, string key)
{
string decWord = word;
for (int i = 0; i < word.size(); i++)
{
char c = tolower(word[i]);
if ((c < 'a') || (c > 'z'))
decWord[i] = c;
else
{
decWord[i] = key[(c - 'a')];
}
}
return decWord;
}
我知道为什么我的消息被进一步加密,但我不知道如何解密它而不会出错。我不能简单地说int j = (c + 'a')。有什么我可以尝试的建议吗?
【问题讨论】:
-
您能否解释一下您得到的结果与您的预期?
-
与其使用幻数(如
97和122),不如使用这些ASCII 代码所代表的实际字母(即'a'和@987654326)更容易阅读和理解您所做的事情@)。 -
什么是加密功能?恐怕你在这两个函数中都使用了
output[i]=key[input[i]-'a'],这对任意键都不起作用。其中一项功能必须在键中执行查找。 -
评论不应该说明你在做什么(代码就是这样做的)他们应该解释你为什么这样做。
-
你注意到加密和解密方法是一样的吗?你如何期望他们做相反的事情?
标签: c++ encryption