主入口
Test.java
package Kaisa;
/**
* 凯撒加密
*/
import java.util.Scanner;
/**
* Created by WTFX on 2016/12/17.
*/
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
do {
System.out.println("1.加密\n2.解密\n输入其他任意数退出");
int op = sc.nextInt();
if (op == 1) {
System.out.println("请输入你需要加密的明文:");
String key = sc.next();
Encrypt E = new Encrypt(key);
System.out.println(E.toString());
} else if (op == 2) {
System.out.println("请输入你要解密的密文:");
String value=sc.next();
Decode D=new Decode(value);
System.out.println(D.toString());
} else {
break;
}
}while (true);
}
}
加密
Encrypt.java
package Kaisa;
import java.util.HashMap;
import java.util.Map;
import java.util.Map;
/**
* Created by WTFX on 2016/12/17.
* 加密
*/
public class Encrypt {
private String key;
private String value="";
Map<String,String> map=new HashMap();
public Encrypt() {}
@Override
public String toString() {
String str_key="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
String str_value="DEFGHIJKLMNOPQRSTUVWXYZABCdefghijklmnopqrstuvwxyzabc";
for(int i=0;i<str_key.length();i++){
map.put(String.valueOf(str_key.charAt(i)),String.valueOf(str_value.charAt(i)));
}
for(int i=0;i<this.key.length();i++){
value+=map.get(String.valueOf(this.key.charAt(i)));
}
return "加密成功!\n密文:"+value;
}
public Encrypt(String key) {
this.key = key;
}
}
解密
Decode.java
package Kaisa;
import java.util.*;
/**
* Created by WTFX on 2016/12/17.
* 解密
*/
public class Decode {
private String key="";
private String value;
Map<String,String> map=new HashMap();
public Decode(String value) {
this.value = value;
}
@Override
public String toString() {
String str_key="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
String str_value="DEFGHIJKLMNOPQRSTUVWXYZABCdefghijklmnopqrstuvwxyzabc";
for(int i=0;i<str_key.length();i++){
map.put(String.valueOf(str_value.charAt(i)),String.valueOf(str_key.charAt(i)));
}
for(int i=0;i<value.length();i++){
key+=map.get(String.valueOf(value.charAt(i)));
}
return "解密成功!\n明文:"+key;
}
}
- 本来想加密解密想用一个集合的 无奈功力不到位。
有几点疑惑
1.能不能通过一个集合实现
2.能否通过转换byte 的方式 在ASCII上完成
3.代码可以怎样精简
有大神出没的话给个指点呗(^-^)V
热门评论
添加集合应该写在静态初始化块里面会更好一些 不然每次调用就添加一次集合这样不太好