package java1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class java1_1{
StringBuffer Str1 = new StringBuffer("");
StringBuffer Str2 = new StringBuffer("");
public static void main(String[] args) {
while(true)
{
Scanner s = new Scanner(System.in);
System.out.print("请输入密钥:");
int key = s.nextInt()%26;//给密钥设置了偏移值
java1_1 ks = new java1_1();
System.out.print("选择加密按1,解密按2:");
int a = s.nextInt();
switch (a)
{ case 1:
ks.E(key);
break;
case 2:
ks.D(key);
break;
}
}
}
void E(int k) {
try {
System.out.println("请输入一段明文:");
char b[];
BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
String str2 = br2.readLine();
b = str2.toCharArray();
char ch = ' ';
for (int i = 0; i < str2.length(); i++) {
if (b[i] >= 'a' && b[i] <= 'z') {
ch = (char) ((b[i] - 'a' + k) % 26 + 'a');
}
if(b[i] >= 'A' && b[i] <= 'Z'){
ch = (char) ((b[i] - 'A' + k) % 26 + 'A');
}
Str1.append(ch);
}
System.out.println("密文为:"+Str1+"密匙为:" + k);
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
void D(int k) {
try {
System.out.println("请输入一段密文:");
char b[];
BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
String str2 = br2.readLine();
b = str2.toCharArray();
char ch = ' ';
for (int i = 0; i < str2.length(); i++) {
if (b[i] >= 'a' && b[i] <= 'z') {
ch = (char) ((b[i] - 'a' - k +26) % 26 + 'a');
}
if(b[i] >= 'A' && b[i] <= 'Z'){
ch = (char) ((b[i] - 'A' - k +26) % 26 + 'A');
}
Str1.append(ch);
}
System.out.println("明文为:"+Str1+"密匙为:" + k);
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}