我听说过 K9 加密,但我不知道它是哪种加密类型以及它是如何工作的。我只在一个网站上看到一个示例,但无法解码完整的逻辑。
加密: 8430727796730470662453
已解密:密码是移动的
算法使用数字关联,它使用类似的东西:
0 => _space
1 => ’
2 => ABC
3 => DEF
4 => GHI
5 => JKL
6 => MNO
7 => PQRS
8 => TUV
9 => WXYZ
那么,完整的逻辑是什么?有人可以用 JAVA 或 Javascript 或 PHP 提供加密代码吗。
编辑 1: 我的问题的来源是我必须解密这段代码:8430727796730470662453
,我不 strong> 必须加密一些东西。解密它的解决方案是了解K9加密,但我不了解。
编辑 2: 如果它是一种单向算法,他们是如何解决这个 challenge 的
最佳答案
我会说这不是一种加密算法,而是一种非常非常简单的哈希算法。
散列很容易。
- 从给定的字符串中取出一个字母
- 确定该字母的编号
- 将该数字添加到输出
不可能恢复原状,因为每个数字(0 除外)至少有 3 个可能的字符。
例如,上述示例的另一个可能的解密密码也是:UGE PAQRWOSE GR ONAGJF
。
这也是该算法的问题:与其他安全哈希算法不同,它极大地减少了为给定哈希找到有效密码所需的尝试次数,因为许多不同的输入可以产生相同的输出,所以尝试破解密码,即使实际密码错误,您也有更多机会找到正确的“哈希”。
示例:代替“THE PASSWORD IS MOBILE”,“UGE PAQRWOSE GR ONAGJF”和许多其他字母组合也将被接受为正确的密码。
因此,虽然这可能很好地教 children 有关散列的知识,但请不要使用这是一个真实世界的应用程序......
对于您所链接的挑战,没有真正的“单一答案”解决方案。如果不是欺诈,则任何导致给定数字的字母组合都必须被视为有效解决方案。当然,“THE PASSWORD IS MOBILE”是其中之一。
没有密码必须是有效英文句子的附加信息,这允许许多可能的解决方案。
除非他们接受导致散列 8430727796730470662453
的任何字母组合作为解决方案,否则我不能认真对待该页面。
关于javascript - 什么是K9加密算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40502690/