package test1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test1 {
//加密功能
public String encrepty(int[] source,int key) throws IOException{
int length=source.length;
String s2=null;
StringBuffer sbu = new StringBuffer();
for(int i=0;i<length;i++)
{
if(source[i]>96&&source[i]<123){
source[i]=(source[i]+key-97)%26+97;
String s1=source[i]+",";
sbu.append(s1);
s2=sbu.toString();
}
}
//System.out.println(s2);
return s2;
}
//解密功能
public String deciphring(int[] cipher,int key){
int length=cipher.length;
String s4=null;
StringBuffer sbu = new StringBuffer();
for(int i=0;i<length;i++){
if(cipher[i]>96&&cipher[i]<123)
{
cipher[i]=(cipher[i]-key-97)%26+97;
String s3=cipher[i]+",";
sbu.append(s3);
s4=sbu.toString();
}
}
return s4;
}
//将字符串转成ASCII
public int[] stringToAscii(String value)
{
int[] i1 = new int[50];
//System.out.println("开始转换成ascii");
StringBuffer sbu = new StringBuffer();
char[] chars = value.toCharArray();
for (int i = 0; i < chars.length; i++) {
i1[i]=(int)chars[i];
}
return i1;
}
//将ASCII转成字符串
public static String asciiToString(String value)
{
StringBuffer sbu = new StringBuffer();
String[] chars = value.split(",");
for (int i = 0; i < chars.length; i++) {
sbu.append((char) Integer.parseInt(chars[i]));
}
System.out.println("转换后为"+sbu.toString());
return sbu.toString();
}
public static void main(String[] args) throws IOException {
BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));
System.out.print("请先输入key(0~26)并回车:");
int key = Integer.valueOf(strin.readLine());
System.out.println("key=:"+key);
System.out.print("请选择对应的编号执行相应的功能并回车:1:加密功能;2:解密功能");
String function= strin.readLine();
Test1 t1=new Test1();
switch (function) {
case "1":
System.out.println("加密功能");
System.out.print("请先输入明文内容:");
String mingwen = strin.readLine();
System.out.println("你输入的明文为:"+mingwen);
int[] mingwen2=t1.stringToAscii(mingwen);
String m1=t1.encrepty(mingwen2,key);
t1.asciiToString(m1);
break;
case "2":
System.out.println("解密功能");
System.out.print("请先输入密文内容:");
String miwen = strin.readLine();
System.out.println("你输入的密文为:"+miwen);
int[] miwen2=t1.stringToAscii(miwen);
String mi1=t1.deciphring(miwen2, key);
t1.asciiToString(mi1);
break;
default:
break;
}
}
}