如何在到达范围结束时循环范围内的数值

时间:2015-10-05 01:15:23

标签: java encryption caesar-cipher

我正在尝试创建一个基本的加密程序,将字符值转换为数字形式,添加一个"键"然后将它们转换回char形式,从而加密单词。

但是我无法弄清楚如何使数值达到90或更大(char Z),循环回到65(char A)。

std::vector<std::list<int> > graph(n, std::list<int>())

1 个答案:

答案 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,但由于原始文本没有变化,加密将被破坏。