我正在尝试创建一个基本的加密程序,将字符值转换为数字形式,添加一个"键"然后将它们转换回char形式,从而加密单词。
但是我无法弄清楚如何使数值达到90或更大(char Z),循环回到65(char A)。
std::vector<std::list<int> > graph(n, std::list<int>())
答案 0 :(得分:0)
首先,让我们首先说你的加密模糊不清。有人说,将characterValue = (65 + key );
更改为characterValue = ((characterValue - 90) + 65);
此外,您在characterValue>90
上添加了两次密钥。
好的,让我用例子来解释一下
在行characterValue = characterValue + key;
中,您已将密钥添加到字母中,因此我将其从if
内的代码中删除。
我不认为这部分需要一个例子。
下一部分,总和本身:
让我们说某人键入AZTEST,键11,结果应该是(添加键,如果大于90则重新开始):LLFPEF
A(65):(76)L
Z(90):(101->76)L
T(84):(95->70)F
E(69):(80)P
S(83):(94->69)E
T(84):(95->70)F
使用&#39; S&#39;例如,我们有83 + 11 = 94. 94大于90,所以我们要做的是:首先,我们发现它超过了多少(94-90 = 4)。现在我们有了这个数字,我们只需要开始计算。 A = 65,所以65 + 4 = 69。 69 = E。
问题在于Z将变得与另一个值相同。我看到Z的唯一键与A不同,在这种情况下,key = 0,但由于原始文本没有变化,加密将被破坏。