凱撒加密演算法
#include<iostream>
#include<cstring>/*檔案cstring,和string.h對應,c++版本的標頭檔案,
包含比如strcpy之類的字串處理函式*/
#include<string>
using namespace std;
int main()
{
cout<<"\n";
cout<<"-----------------凱撒加密演算法---------------"<<endl<<endl;
char a[26];
int i;
for(i=0;i<26;i++)
{
a[i]=char(65+i);/*強制型別轉換,因為a是字元型,所以這句話的意思就是將陣列a從0開始賦值,
而且是賦特定的值,如a[0]是A依次下去,一直有26個; */
}
cout<<"密碼錶為:"<<endl;
for(i=0;i<26;i++)
{
cout<<i<<"-------------------"<<a[i]<<'\t';
//對應的輸出密碼錶,a[0]和A對應依次;
}
cout<<endl;//上面是對密碼錶的定義;
char plain[64],cipher[64];//明文、密文字串;
//加密階段;
cout<<"\n* * *加密* * *\n"<<endl;
while(1)
{
cout<<"請輸入明文(明文需用連續的大寫字母):"<<"\n";
cin>>plain;//輸入明文字串;
for(i=0;i<strlen(plain);i++)//如果輸入的明文字元大於Z或者小於A或加密完了則退出迴圈;
{
if(plain[i]<'A'||plain[i]>'Z')
break;
}
if(i>=strlen(plain))
break;
}
cout<<"您輸入的明文為:"<<plain<<endl;//銘文的輸入;
int key;
cout<<"請您輸入您的鑰匙(必須是整數):";
cin>>key;
cout<<"您輸入的鑰匙為:"<<key<<endl;
cout<<"所得的凱撒密碼為:";
for(i=0;i<strlen(plain);i++)
{
int c,j;
c=int(plain[i]);//強制型別轉換,將字元轉換成整數,即ascII碼值;
j=((c-65)+key)%26;//進行加密;
cipher[i]=a[j];//將密文進行賦值;賦值的為經過加密後的值;
//這個加密就是把明文的ascII碼值進行運算之後的值賦給另一個陣列;
}
cipher[i]=0;//最後一個賦值為0,不然會出現亂碼;
cout<<cipher;//輸出密文;
cout<<endl;
//解密階段;
cout<<"\n* * *解密* * *\n "<<endl;
cout<<"請輸入您的凱撒密碼(需用大寫連續英文字母):";
cin>>cipher;
cout<<"您輸入的凱撒密碼為:"<<cipher<<endl;
cout<<"請輸入您的鑰匙(必須為整數):";
cin>>key;
cout<<"您輸入的鑰匙為:"<<key<<endl;
cout<<"解密後的明文為:";
for(i=0;i<strlen(cipher);i++)
{
int c,j;
c=int(cipher[i]);
j=((c-65)-key+26)%26;
plain[i]=a[j];
}
plain[i]=0;
cout<<plain;
cout<<endl;
return 0;
}
凱撒加密的原理就是先輸入一串字串,然後在將輸入的字串轉換成ascII碼之後進行運算,然後儲存起來,最後再將原來的值還原就得到了最初的值,這樣就完成了加密的運算。
相關文章
- 凱撒密碼加解密過程與破解原理密碼解密
- 凱撒文化暴漲背後,位元組遊戲的進擊之路遊戲
- 凱撒文化亮相2019全球流量大會 擴充“遊戲出海”藍圖遊戲
- 凱撒文化參展深圳動漫節,佈局雲遊戲領域遊戲
- 凱撒文化“蓄勢 · 待發”釋出會:泛娛先鋒 勢起未來
- 凱撒文化亮相2019深圳動漫節,詮釋雲遊戲戰略佈局遊戲
- 凱撒文化品牌戰略釋出會將於11月28日“蓄勢 · 待發”
- 凱撒文化:《新三國榮耀》手遊將由騰訊獨家代理髮行
- 撒旦發撒的發撒的
- 位元組跳動遊戲“新盟友”:朝夕光年與凱撒文化簽署10年長約遊戲
- 真實的凱撒文化:投資收益支撐淨利 實控人套現2.3億
- 撒旦撒
- SHA加密演算法加密演算法
- Rabbit加密演算法加密演算法
- 加密演算法(一)加密演算法
- RSA加密演算法加密演算法
- 常用加密演算法加密演算法
- 常見加密演算法及常見加密演算法簡述加密演算法
- 加密演算法學習加密演算法
- 加密演算法的使用加密演算法
- 凱撒文化Q3營收淨利均下跌逾26%,明年有3款遊戲交由騰訊獨代營收遊戲
- 完結撒花!
- 撒點鹽Salt
- 非對稱加密演算法-RSA演算法加密演算法
- Java 常用加密解密演算法Java加密解密演算法
- MD5加密演算法加密演算法
- Java中Blowfish加密演算法Java加密演算法
- DreamJudge-1014-加密演算法加密演算法
- 加密解密演算法系列加密解密演算法
- Go加密演算法總結Go加密演算法
- Python幾種加密演算法Python加密演算法
- 那些常用的加密演算法加密演算法
- 凱撒醫療集團:運動被證明可以降低感染新冠的風險以及疾病的嚴重程度
- “位元組概念股”連續大漲!凱撒文化半年暴漲105.09%,省廣集團漲近300%成妖股
- 應用加密1;非對稱加密演算法揭祕加密演算法
- (轉)Go加密演算法總結Go加密演算法
- 逆向中常見的加密演算法加密演算法
- Lifted ElGamal 門限加密演算法GAM加密演算法