JAVA简单英文段加密和解密,求高手请教

加密方法如图片 A加密为W B加密为R 这样
比如输入ATTACK AT DAWN
则加密后为WPPWEK WP AWTG
反之输入WPPWEK WP AWTG
解密后为ATTACK AT DAWN

按照你的对应表做的,结果与你列出的不符,是你那个表关系的问题,
逻辑上没有问题

--------------------------------------------------------------------
import java.util.HashMap;
import java.util.Map;

public class Test {

private static String pattern = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private static String patternAs = "WREAKHOVOCABDFGIJLMNPQSTUXZ";
private static Map<String, String> mapEnc = new HashMap<String, String>();
private static Map<String, String> mapDec = new HashMap<String, String>();

public static void main(String[] args) throws Exception {
for (int i = 0; i < pattern.length(); i++) {
String key = pattern.substring(i, i + 1);
String value = patternAs.substring(i, i + 1);
mapEnc.put(key, value);
}
for (int i = 0; i < pattern.length(); i++) {
String key = patternAs.substring(i, i + 1);
String value = pattern.substring(i, i + 1);
mapDec.put(key, value);
}

String src = "ATTACK AT DAWN";
String dest = toEncryption(src);
src = toDecrypt(dest);
System.out.println(dest);
System.out.println(src);
}

public static String toEncryption(String str) {
StringBuffer buff = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
String src = str.substring(i, i + 1);
if (src.matches("[A-Z]")) {
buff.append(mapEnc.get(src));
} else {
buff.append(src);
}
}
return buff.toString();
}

public static String toDecrypt(String str) {
StringBuffer buff = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
String src = str.substring(i, i + 1);
if (src.matches("[A-Z]")) {
buff.append(mapDec.get(src));
} else {
buff.append(src);
}
}
return buff.toString();
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-25
完全不懂你怎么加密的。
需要两个问题。
1. 第六个K是不加密么?
2. 加解密是不是分不同输入框输入的,不然我怎么知道是要加密还是解密。

大体看着像是建立密码表一一对应就好了。
第2个回答  2012-06-26
生手猴子,捡芝麻,丢西瓜。
相似回答