导航:首页 > 编程语言 > java凯撒密码

java凯撒密码

发布时间:2022-04-14 19:28:49

java凯撒密码加解密

这不就几行代码吗,用框架来形容太夸张了吧。。。简单的字符串转ascii然后想加减就行了

Ⅱ java Caesar密码程序 凯撒密码问题!!!char c = abc.charAt(i);

不用类也是可以做的,不过看起来有些哆嗦,随便看一下吧,自己再改简单一点
using namespace std;
const int N=20;
void main()
{ int k;
void encipher(char c[],int b);
void decipher(char c[],int b);
char plaintext[N];

cout<<"Please enter the keywards k(0<k<26):"<<endl;
cin>>k;
cout<<"Please enter the plaintext:"<<endl;
cin>>plaintext;
cout<<"the ciphertext is:";
encipher(plaintext,k);
cout<<"the plaintext is:";
decipher(plaintext,k);

}

void encipher(char c[],int b)
{
int i;
int a[N];
for(i=0;i<N;i++)
a[i]=c[i]; //注:128~255是IBM-PC上专用的,ASCII代码中000-127是标准的,如果是z加20的就会超出128,故先赋给整型,然后再转换过来,
for(i=0;a[i]!='\0'&&i<N;i++)
{
if((a[i]>='A'&&a[i]<='Z')||(a[i]>='a'&&a[i]<='z'))
{
a[i]=a[i]+b;
if((a[i]>'Z'&&a[i]<='Z'+b)||(a[i]>'z'))
a[i]=a[i]-26;}

}
for(i=0;i<N;i++)
c[i]=a[i];
for(i=0;i<N;i++)
cout<<c[i];
cout<<endl;
}

void decipher(char c[],int b)

{
int i;
for(i=0;c[i]!='\0'&&i<N;i++)
{
if((c[i]>='A'&&c[i]<='Z')||(c[i]>='a'&&c[i]<='z'))
{
c[i]=c[i]-b;
if((c[i]>='a'-b&&c[i]<'a')||c[i]<'A')
c[i]=c[i]+26;}

}
for(i=0;i<N;i++)
cout<<c[i];
}

Ⅲ JAVA凯撒密码 选择问题

【看法】:
你的加密解密其实就是同一个方法,你是完全复制的,呵呵,连提示的话都没有改,那就给方法设置一个参数,根据参数判断是加密还是解密,其实就是提示不同罢了。
凯撒密码是最最原始的线性对称密码。
我给的选择菜单只有两个按钮,就是【加密】【解密】。显示都在控制台了,呵呵,你也可以自己在菜单上加一个JTextArea,把他们显示在菜单上面。
【代码】:
package Exam;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import javax.swing.*;
/**
*
* @author [email protected]
* Mar 5, 20103:11:29 PM
*/
public class Exam_exam01 extends JFrame implements ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
JFrame Jf;
JPanel Jp;
JButton but1,but2;
public void Menu(){//简单的选择页面
Jf=new JFrame("凯撒密码");
Jp=new JPanel();
but1=new JButton("加密");
but2=new JButton("解密");
Jp.add(but1);but1.addActionListener(this);
Jp.add(but2);but2.addActionListener(this);
Jf.add(Jp);
Jf.setSize(300,200);
Jf.setVisible(true);
}
public void actionPerformed(ActionEvent e){//事件处理
if(e.getSource()==but1) Cipher(0);
if(e.getSource()==but2) Cipher(1);
}
public void Cipher(int iNum){//凯撒密码 加密解密
try{
char b[];//存放密文
BufferedReader br2=new BufferedReader(new InputStreamReader(System.in));
if(iNum==0)System.out.println("请输入一段明文(只能输入小写字母):");
if(iNum==1)System.out.println("请输入一段密文(只能输入小写字母):");
String str2=br2.readLine();
b=str2.toCharArray();
if(iNum==0)System.out.println("密文为:");
if(iNum==1)System.out.println("明文为:");
for(int k=1;k<=26 ;k++ ){
for(int i=0;i<str2.length();i++){
char s=(char)((b[i]-'z'-k)%26+'z');//此处写“((b[i]-'a'-1)%26+'a')”也行
System.out.print(s);
}
System.out.println(" 密匙K="+k);
}
if(iNum==0)System.out.println("请在以上结果中查找可能的密文");
if(iNum==1)System.out.println("请在以上结果中查找可能的明文");
}catch(IOException e){
System.out.println(e.getMessage());
}
}
public static void main(String[] args){
Exam_exam01 ee=new Exam_exam01();
ee.Menu();
}
}

Ⅳ 我想做一个凯撒密码的JAVA程序,在输入框中输入一段英文后密文后,能生成明文。

public class Swither {
public static void main(String[] args) {
System.out.println("ab,cdx;yz中国");
System.out.println(Encryption.encryption( "ab,cdx;yz中国"));
System.out.println(Decryption.decryption((Encryption.encryption( "ab,cdx;yz中国"))));
}
}
运行结果如下:
ab,cdx;yz中国
de,fga;bc中国
ab,cdx;yz中国

public class Encryption {

public static String encryption(String content)
{
if(content==null)
return null;
String temp="";
for(int i=0;i<content.length();i++)
{
char c=content.charAt(i);
//if(Character.isLetter(c))
if((c>='a' && c<='z')||(c>='A' && c<='Z'))
if(c=='x' || c=='y' || c=='z' || c=='X' || c=='Y' || c=='Z')
c=(char)(c-23);
else
c=(char)(c+3);
temp+=c;

}
return temp;
}

}

public class Decryption {

public static String decryption(String content)
{
if(content==null)
return null;
String temp="";
for(int i=0;i<content.length();i++)
{
char c=content.charAt(i);
//if(Character.isLetter(c))
if((c>='a' && c<='z')||(c>='A' && c<='Z'))
if(c=='a' || c=='b' || c=='c' || c=='A' || c=='B' || c=='C')
c=(char)(c+23);
else
c=(char)(c-3);
temp+=c;

}
return temp;
}

}

Ⅳ java凯撒密码 字符串转换成字符串组

亚历山大来的使节
晚上我们燃起一堆火
一路谄媚的获取
我沉浸在你给的乌托邦甜蜜信仰
就像生产中的孩子,而他的母亲正准备
中似浮尘风中转,暴雨倾盆落尘凡。哈哈

Ⅵ 凯撒密码判断是不是整型,请高手指点。如下代码condition处

Scanner.nextInt() 返回的就是int类型,一定是整数,不会不是整数的

Ⅶ 利用java实现凯撒密码,要求密钥必须由键盘输入,不是定值,并且实现加密与解密

这个真心 不会!!!~~~如果你会了顺便告诉我啊 !!!!

Ⅷ java中的凯撒加密和解密时如何编程的!我值想知道思路和方法。有什么还方便的建议

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>kasi加密</title>
<script language="Javascript">
function change(){
var num1=document.form1.text1.value;
var num2=document.form1.text2.value;
if(isNaN(num2)==true){
alert("你输入的第二个文本框不是数字!");
return;
}
var num3=Number(num2);
var num4='';
for(var i=0;i<num1.length;i++){
var aCharCode=(num1.substring(i,i+1)).charCodeAt();
var resultCode=aCharCode+num3;
if(aCharCode<65||(aCharCode>90&&aCharCode<97)||aCharCode>122){
alert("第一个文本框中不全是英文字母!");
return;
}
else{
var baseCode;
if(aCharCode>=65&&aCharCode<=90){
baseCode=65;
}
else{
baseCode=97;
}
num4+= String.fromCharCode((resultCode-baseCode)%26+baseCode);
}
}
document.form1.text3.value=num4;
}
</script>
</head><body bgcolor="#addfee">
<p ><h2 align="center">凯撒密码转换器</h2></p>
<form name="form1">
<p>
<h4 align="center">明文 <input name="text1" type="text" ><br><br>
密钥 <input name="text2" type="text"><br><br>
密文 <input name="text3" type="text"></h4>
</p>
<p align="center">
<input name="jiami" type="button" onClick="change()" value="加密" >

<input name="reset" type="reset" value="重置">

</p></form>
<br>
</body>
</html>

Ⅸ 凯撒密码java编程实现图形界面化代码

class Caesar: def __init__(self): a = list(' ,.-!\'"') b = a[3:] + a[:3] self.emap = dict(zip(a,b)) self.dmap = dict(zip(b,a)) def encode(self, text): tmp = [ (x in self.emap and self.emap[x] or x) for x in text ] return ''.join(tmp) def decode(self, text): tmp = [ (x in self.dmap and self.dmap[x] or x) for x in text ] return ''.join(tmp)

Ⅹ java编程,凯撒密码,不用数组

代码如下:

publicclassApp{

publicstaticvoidmain(String[]args){

Strings="HelloWorld!";

Stringresult="";

for(inti=0;i<s.length();i++){
result+=(char)(s.charAt(i)+12);
}

System.out.println("加密结果:"+result);
}
}
阅读全文

与java凯撒密码相关的资料

热点内容
linux多线程聊天 浏览:210
腐蚀进服务器秒退是怎么回事 浏览:995
个人卖二手房在哪个app 浏览:307
和平精英服务器怎么用 浏览:171
mysql查询索引命令 浏览:569
杂波怎么消除单片机 浏览:205
VGA编程线 浏览:981
沙井数控编程培训学校 浏览:130
程序员可以独立吗 浏览:110
购买浪潮服务器如何部署云 浏览:359
把pdf转为word的软件 浏览:799
程序员去面试产品经理 浏览:463
魏晋玄学pdf 浏览:160
单片机步进电机接线图 浏览:148
如何关闭安卓通话设置 浏览:417
方舟生存进化云服务器配置 浏览:216
微信app广告的广告主是什么 浏览:984
java两个队列实现栈 浏览:700
先学c语言还是单片机 浏览:48
服务器的全称和英文是什么 浏览:23