A. 用高級語言編寫通用凱撒密碼的加密/解密程序
結果是v h f x u i w b
B. 凱撒密碼的演算法c語言的怎麼實現啊
凱撒密碼是一種非常古老的加密方法,相傳當年凱撒大地行軍打仗時為了保證自己的命令不被敵軍知道,就使用這種特殊的方法進行通信,以確保信息傳遞的安全。他的原理很簡單,說到底就是字母於字母之間的替換。下面讓我們看一個簡單的例子:「」用凱撒密碼法加密後字元串變為「edlgx」,它的原理是什麼呢?把「」中的每一個字母按字母表順序向後移3位,所得的結果就是剛才我們所看到的密文。
#include <stdio.h>
main()
{
char M[100];
char C[100];
int K=3,i;
printf("請輸入明文M(注意不要輸入空白串)\n");
gets(M);
for(i=0;M[i]!='\0';i++)
C[i]=(M[i]-'a'+K)%26+'a';
C[i]='\0';
printf("結果是:\n%s\n",C);
}
C. 給我凱撒密碼的方法
恩~ 你都給了明文和密鑰…不知道你還要什麼方法啊?
如果你不知道凱撒,可以去網路一下,我給你簡單說一下吧~
英文26個字母(不分大小寫)可以由數字01~26來代替(有人也用00~25來代替,不過不常見~)
凱撒全稱叫凱撒位移加密法,顧名思義啊~
比如A是01,你用n=4加密之後就是01+4=05,05在字母表裡是E,所以A加密之後就是E~
CHINA用n=4加密之後就是GLMRI~ 明白沒?
對了,需要說明一下,上面舉的例子是字母表向右移動4位,n=4也可以理解為向左移動4位,那麼CHINA加密之後就變成YDEJW~ 不過不用擔心,一般情況下都是向右移的,當然也不排除某些變態向左移(強烈鄙視這種人!!!)…
恩~ 廢話說了好多,給你密文吧~說明一下,我是用01~26和右移的方法加密的~
Glmri Girwvep Vehms erh XZ Yrmzivwmxc~ 完畢~(我加的有點快,不保證全對,你自己檢查一下哈~)
再補一句,字母表可以循環用的,比如Z用完了就回到ABC…,這時候A就相當於27~ 明白否?
嘿嘿… 我腹黑一下下~ 如果你想用密碼去虐一個人的腦細胞的話,推薦你用00~25和左移的方法,保證他能死至少一半的腦細胞~
嘿嘿嘿嘿……
D. 凱撒密碼,要求C語言編寫,求救!
寫的一般般,希望對LZ有所幫助
#include <stdio.h>
#include <string.h>
int main()
{
char str[201];//存放字元
char tmp[11];//臨時變數
int i;//循環變數
int len;//存放消息長度
scanf("%s",tmp);//這里輸入START,開始
getchar();//接收回車
while(strcmp(tmp,"ENDOFINPUT"))
{
gets(str);//由於輸入中有空格,所以用gets輸入
getchar();//接收回車
len = strlen(str);
for(i=0;i<len;i++)
{
if(str[i]>='A'&&str[i]<='Z')
{
str[i] -= 5 ;
if(str[i] < 65)
{
str[i] +=26;
}
}
}
scanf("%s",tmp);//這里輸入END,結束
printf("%s\n",str);//處理完就直接輸出結果
scanf("%s",tmp);//輸入START表示繼續,輸入ENDOFINPUT則表示最後一個數據集
getchar();//接收回車
}
return 0;
}
E. 用java 編寫一個凱撒加密和解密
import java.util.Scanner;
public class Caeser {
private String table; // 定義密鑰字母表
private int key; // 定義密鑰key
public Caeser(String table, int key) {
// 根據不同的字母表和不同的密鑰生成一個新的凱撒演算法,達到通用的目的
super();
this.table = table;
this.key = key;
}
public String encrypt(String from) {
//凱撒加密演算法,傳入明文字元串,返回一個密文字元串
String to = "";
for (int i = 0; i < from.length(); i++) {
to += table.charAt((table.indexOf(from.charAt(i))+key)%table.length());
}
return to;
}
public static void main(String[] args) {
Caeser caeser = new Caeser("abcdefghijklmnopqrstuvwxyz", 3);
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入要加密的字元串");
String str =scanner.nextLine(); //輸入字元串 security
String result = caeser.encrypt(str); //調用加密方法進行加密
System.out.print(result); // 可得結果 vhfxulwb
}
}
F. 用C#實現凱撒密碼演算法。急急急!!
告訴我郵箱我把程序發給你
G. 編寫一個程序,將一個字元串進行凱撒加密
#include<stdio.h>
int main()
{ char s[100];
int i,k=3; //此處以k=3為例,如需變化,以scanf("%d",&k);進行讀取
gets(s);
for(i=0;s[i];i++)
{
if(s[i]>='A'&&s[i]<='Z')
{s[i]+=k;
if(s[i]>'Z')s[i]-=26;
}
if(s[i]>='a'&&s[i]<='z')
{s[i]+=k;
if(s[i]>'z')s[i]-=26;
}
}
printf("%s ",s);
getch();
return 0;
}
H. 按照凱撒密碼的加密方法,JSJ的密文為____
這種秘聞是非常復雜的,必須經過精英系的計算才能算出來的。
I. 什麼是凱撒加密法
簡單的說,就是位移加密。
比如你的密碼是ABCDE
然後設置凱撒密碼的偏移量為3的話
那加密之後的密碼就是DEFGH
J. 凱撒加密法
凱撒加密法的替換方法是通過排列明文和密文字母表,密文字母表示通過將明文字母表向左或向右移動一個固定數目的位置。例如,當偏移量是左移3的時候(解密時的密鑰就是3):
明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC
使用時,加密者查找明文字母表中需要加密的消息中的每一個字母所在位置,並且寫下密文字母表中對應的字母。需要解密的人則根據事先已知的密鑰反過來操作,得到原來的明文。例如:
明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ
凱撒加密法的加密、解密方法還能夠通過同餘的數學方法進行計算。首先將字母用數字代替,A=0,B=1,...,Z=25。此時偏移量為n的加密方法即為:
En(x)=(x+n)mod26{\displaystyle E_{n}(x)=(x+n)\mod 26}
解密就是:
Dn(x)=(x−n)mod26{\displaystyle D_{n}(x)=(x-n)\mod 26}