java - 创建一个简单的加密程序

标签 java encryption

我想使用 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。

最佳答案

您可以采取以下步骤来执行此操作。这不是一个精确且有效的解决方案,但希望它可以帮助您入门。

  1. 首先从控制台读取输入(例如通过 ScannerBufferedReader)。
  2. 也许可以将您的输入拆分为空格,这样您就有一个 String[] 单词。
  3. 循环遍历单词的String[],并针对哪个单词再次循环。您可以拥有一个计数器,该计数器在内部循环的每次迭代中递增,并在内部循环结束时重置。您可以使用该计数器变量来获取内部循环每次迭代中键的位置 (key[counter%lengthOfKey])。如果 (counter%lengthOfKey)%2 == 0,则 key 的大小写为偶数,否则为奇数。此时进行任何加密(例如简单的替换密码)。

关于java - 创建一个简单的加密程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21290382/

相关文章:

java - Tomcat 404 : The requested resource is not available

java - 扫描仪不接受我提供的输入

java - 如何确保作业仅运行一次/或仅由 5 个负载平衡器服务器之一运行

javascript - 从长字符串中提取两项的正则表达式

java - 在任何浏览器中加载 EToken 证书

java - Spring Cloud 配置服务器禁用加密和解密端点

java - 我可以使用标准 Java 密码 API 来使用 BouncyCaSTLe 的可调整 block 密码吗?

c# JWT 使用 ES256,将 privateKey 加载到 CngKey 中以在 talkdesk (jose-jwt) 中验证

java - 如何本地化整个 java spring 应用程序

java - 使用 AES/RSA 在 Java 中加密和解密数据