-
package mima;
import edReader;
import ption;
import
treamReader;
import r;
public class Mainer {
StringBuffer
MStr = new StringBuffer(
//
加密字符串
StringBuffer CStr = new
StringBuffer(
//
解密字符串
public static void main(String[] args)
{
(
请
输入密钥:
Scanner s =
new Scanner();
}
/**
*
加密
公式
*/
void E(int k) {
try {
n(
请输入一段明文:
char b[];
BufferedReader br2 = new
BufferedReader(new InputStreamReader());
String str2 =
ne();
b =
Array();
char
ch = ' ';
for
(int i = 0; i < (); 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');
}
if(b[i]>='0'&&b[i]<='9')
int key = t() % 26; //
%26
的意义是获取密钥的偏移值
Mainer ks = new Mainer();
ks.E(key); //
加密
ks.D(key);
/
/
解密
}
{
if(b[i]+k%10<='9')
{
ch=(char)(b[i]+k%10);//
当提取的字符在
9
之前的
n
位时
}
else
{ch=(char)('0'+((b[i]-(
'9'-k)-1)%10));//
孤立出来的
n
个字符
}
ch=b[i];}
(ch);
//
拼接字符串
n(
密文为:
密匙为:
} catch (IOException e) {
n(sage());
}
}
/**
*
解密
公式
*/
void D(int k)
{
try {
char b[];
b = ng().toCharArray();
char ch =' ';
for (int i = 0;
i < (); i++) {
if (b[i] >= 'a' && b[i] <= 'z') {
ch = (char) ((b[i] - 'a' + 26 - k) % 26
+ 'a');
}
if(b[i] >= 'A' && b[i] <= 'Z'){
ch = (char) ((b[i] - 'A' + 26 - k) % 26
+ 'A');
}
if(b[i]>='0'&&b[i]<='9'){
if(b[i]-k%10>='
0')//
当提取的字符在
0
之前的<
/p>
n
个时
{
ch=(char)(b[i]-k%10);}
else{
ch=
(char)('9'-((b[i]-(k-'0')-1)%10));//
操作孤
立出来的
n
个字符
}
ch=b[i];}
(ch);
//
拼接字符串
}
n(
明文:
}
}
} catch (Exception e) {
n(sage());
}
public static void
main(String[] args) {
(
移位加密;
2
移位解
密
Scanner result = new Scanner();
int r=t();
}
(
请输
入密钥:
Scanner s = new
Scanner();
int key = t() % 26; //
%26
的意义是获取密钥的偏移值
yiwei ks = new yiwei();
if(r==1){ks.E(key);}//
加密
else if(r==2)
{ks.D(key);}
//
解密
else (
< br>请选择正确选项(
1
或
2
)
移位:
package mima;
import
edReader;
import ption;
import treamReader;
import
r;
public class
Mainer {
StringBuffer MStr = new
StringBuffer(
StringBuffer CStr = new
StringBuffer(
public static
void main(String[] args) {
}
/**
*
加密
公式
*/
void E(int k) {
try {
p>
n(
请输入一段明文:
char b[];
BufferedReader br2 = new
BufferedReader(new InputStreamReader());
String str2 = ne();
b =
Array();
char ch = ' ';
for
(int i = 0; i < (); 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');
}
if(b[i]>='0'&&b[i]<='9')
{
if(b[i]+k%10<='9')
{
ch
=(char)(b[i]+k%10);//
当提取的字符在
9
之前的
n
位时
}
(
请输入密钥:
Scanner s = new
Scanner();
int key = t() % 26; //
%26
的意义是获取密钥的偏移值
Mainer ks = new Mainer();
ks.E(key); //
加密
ks.D(key);
/
/
解密
//
加密字符串
//
解密字符串
}
}
else
{ch=(char)('0'+((b[i]-(
'9'-k)-1)%10));//
孤立出来的
n
个字符
}}
(ch);
//
拼接字符串
n(
密文为:
密匙为:
} catch (IOException e) {
n(sage());
}
}
/**
*
解密
公式
*/
void D(int k)
{
try {
char b[];
b = ng().toCharArray();
char ch =' ';
for (int i = 0;
i < (); i++) {
if (b[i] >= 'a' && b[i] <= 'z') {
ch = (char) ((b[i] - 'a' + 26 - k) % 26
+ 'a');
}
if(b[i] >= 'A' && b[i] <= 'Z'){
ch = (char) ((b[i] - 'A' + 26 - k) % 26
+ 'A');
}
if(b[i]>='0'&&b[i]<='9'){
if(b[i]-k%10>='
0')//
当提取的字符在
0
之前的<
/p>
n
个时
{
ch=(char)(b[i]-k%10);}
else{
ch=
(char)('9'-((b[i]-(k-'0')-1)%10));//
操作孤
立出来的
n
个字符
}}
}
(ch);
//
拼接字符串
}
n(
明文:
}
catch (Exception e) {
n(sage());
}
vigenere
package mima;
import r;
public class vigenere {
public static
void main(String[] args) {
// TODO Auto-generated method stub
@SuppressWarnings(
Scanner input = new
Scanner();
n(
p>
输入明文,要求用小写字母,不要打空格
String s = ne();//
输入明文,要求用小写字母,不要打空格
n(
输入
秘钥,要求用小写字母,不要打空格
String s2 = ne();//
输入秘钥,要求用小写字母,不要打空格
String s3 =
encrypt(s, s2);//
使用加密算法,得到密文
n(s3);
}
String s4=deciphering(s3,s2);//
< br>使用解密算法,实现解密
n(s4);
public static String encrypt(String s1,
String s2) {
char[] ch1 =
Array();
int length = //
明文长度
int[] in1 = new int[length];
for (int i = 0; i < i++)
{
in1[i] = ch1[i] - 97;//
利用
ascii
变成
0-25
数字
}
char[] ch2 = Array();
int
length2 = //
明文长度
-
-
-
-
-
-
-
-
-
上一篇:名词、动词的各种形式与读音
下一篇:古文中词性变化