【发布时间】:2013-05-06 19:45:38
【问题描述】:
谁能看到我在这里做错了什么?我有一个算法,它通过沿数组移动 14 个空格来加密字符串,但是当我尝试解密它时,一些字母会重复,例如
加密时:abcdefghijklmnopqrstuvwxyz == opqrstuvwxyzabcdefghijklmn
解密时:opqrstuvwxyzabcdefghijklmn == abcdefghijklklabcdefghijkl
char[] plaintext = input.toCharArray();
for(int i = 0; i<plaintext.length; i++) {
for(int j = 0 ; j<26; j++) {
if(j>=14 && plaintext[i]==alphabet[j]) {
plaintext[i] = alphabet[j-14];
break;
}
else if(plaintext[i] == alphabet[j] && j<14 ) {
plaintext[i] = alphabet [j+14] ;
}
}
}
【问题讨论】:
-
你正在尝试的几乎,只是一个 Rot13,这不是一种加密形式。任何有半分钟空闲时间的人都可以对其进行逆向工程。
-
是的,rot13 是一种加密形式。它不是一种 strong 形式的加密,它是一种对称旋转(普通替换密码)。
-
这是一项任务,这正是我被告知要做的事情。
-
@d99 也许你可以在这里解释你的逻辑?对我来说,这似乎是不必要的复杂。
标签: java encryption jcreator