導航:首頁 > 編程語言 > 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凱撒密碼相關的資料

熱點內容
pdf閱讀器下載下載 瀏覽:12
sip注冊到多個伺服器地址 瀏覽:898
linuxwifi掃描命令 瀏覽:418
德瑪西亞伺服器為什麼排隊 瀏覽:121
深入淺出linux設備驅動編程 瀏覽:848
pdf文檔怎麼做加密 瀏覽:817
為什麼小米app運動登錄就閃退 瀏覽:893
雲更新賬號能登錄幾台伺服器 瀏覽:181
為什麼大學總是要求下各種App 瀏覽:327
柱上部怎麼加密 瀏覽:454
php寫文件管理 瀏覽:857
壓縮機油加熱器 瀏覽:26
電腦文件夾翻頁 瀏覽:549
幼兒程序員職業人物畫 瀏覽:139
vba編程改簽名 瀏覽:112
義隆單片機視頻教程 瀏覽:385
cad安裝卡在解壓 瀏覽:617
編程精靈g540 瀏覽:258
手機文檔解壓之後解壓包去哪兒了 瀏覽:925
java中網路編程重要嗎 瀏覽:685