我想使用 java 来制作某种密码,但我不知道如何去做。
基本上,我希望机器接受一串文本,例如“Abcd”
然后按一个键,说“4532”
如果与字母位置匹配的数字是偶数,则程序应在字母表中向前移动字符;如果是奇数,则程序应向后移动字符。
如果没有数字,则该键应该循环,直到字符串中没有要更改的字符为止。
然后程序将打印 key 。理想情况下,如果我正确地对其进行伪编码,则解密字符串将是仅适用于 key 的逆过程。
我猜我会使用数组和 if/else 语句的组合。
我不知道从哪里开始。
示例和编辑字符串:'hello' 键:'12'
abc def g hij klm nop qrs t u v w x y z
因为对应的键值为1,所以h会向后移动那么多空格。
h = g
因为 e 有一个 2,所以它会向前移动那么多空格。
e = g
第一个 l 变为 k,而第二个变为 n。由于字符串中没有可供比较的数字,所以键被重复。 o 变成 n,因为它与 1 匹配。
hello 将变成 ggknn, key 为 42。
最佳答案
您可以采取以下步骤来执行此操作。这不是一个精确且有效的解决方案,但希望它可以帮助您入门。
- 首先从控制台读取输入(例如通过
Scanner
或BufferedReader
)。 - 也许可以将您的输入拆分为空格,这样您就有一个
String[]
单词。 - 循环遍历单词的
String[]
,并针对哪个单词再次循环。您可以拥有一个计数器,该计数器在内部循环的每次迭代中递增,并在内部循环结束时重置。您可以使用该计数器变量来获取内部循环每次迭代中键的位置 (key[counter%lengthOfKey]
)。如果(counter%lengthOfKey)%2 == 0
,则 key 的大小写为偶数,否则为奇数。此时进行任何加密(例如简单的替换密码)。
关于java - 创建一个简单的加密程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21290382/