Java实现凯撒密码
加密和解密代码
根据公式
C=(P+key)(mod 26);
P=(C+ key_1)(mod 26);
key_1=26-key%26
可知
c= (char)(((c-‘a’)+key)%26+‘a’);
c= (char)(((c-‘a’)+key_1)%26+‘a’);
根据上面的公式可以写出相应的加密和解密函数
加密和解密函数如下
加密代码
:
for(int i = 0;i < str.length();i++)
{
char c = str.charAt(i);
if(c >= 'a'&&c <= 'z')
{
c= (char)(((c-'a')+key)%26+'a');
}
else if(c >= 'A'&&c <= 'Z')
{
c= (char)(((c-'A')+key)%26+'A');
}
jm += c;
}
解密代码
:
for(int i = 0;i < str.length();i++)
{
char c = str.charAt(i);
if(c >= 'a'&&c <= 'z')
{
c= (char)(((c-'a')+key_1)%26+'a');
}
else if(c >= 'A'&&c <= 'Z')
{
c= (char)(((c-'A')+key_1)%26+'A');
}
jm += c;
}
函数写出后只要写出调用函数就可以,这个可以自行完成。
结果展示
加密代码
:
******欢迎使用凯撒密码******
请选择操作(1.加密 2.解密):1
请输入待加密的字符串:az
输入k值:12
加密后的字符串是:ml
输入任意建继续,0结束程序:1
请选择操作(1.加密 2.解密):2
请输入待解密的字符串:ml
输入k值:12
解密后的字符串:az
输入任意建继续,0结束程序: