凱撒演算法
⑴ 用C#實現凱撒密碼演算法。急急急!!
告訴我郵箱我把程序發給你
⑵ 凱撒演算法的問題
第一次回答可獲2分,答案被採納可獲得懸賞分和額外20分獎勵。#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define MAX_SIZE 100 /*最大字元數*/
void encrypt()
/*加密演算法*/
{
char code[MAX_SIZE] = "\0";
int j= 0, k = 0;
printf("\n請輸入明文:\n");
fflush(stdin);
gets(code);
printf("\n請輸入密鑰:");
scanf("%d", &k);
while(code[j] != '\0')
{
if(code[j] >= 'a' &&code[j] <= 'z')
//小寫字母加密
{
code[j] = (code[j]-'a'+k)%26+'a';
}
else if(code[j] >= 'A' &&code[j] <= 'Z')
//大寫字母加密
{
code[j] = (code[j]-'A'+k)%26+'A';
}
j++;
}
printf("\n對應的密文:\n%s\n", code);
}
void decrypt()
/*解密演算法*/
{
char code[MAX_SIZE] = "\0";
int j= 0, k = 0;
printf("\n請輸入密文:\n");
fflush(stdin);
gets(code);
printf("\n請輸入密鑰:");
scanf("%d", &k);
while(code[j] != '\0')
{
if(code[j] >= 'a' &&code[j] <= 'z')
//小寫字母解密
{
code[j] = (code[j]-'a'-k+26)%26+'a' ;
}
else if(code[j] >= 'A' &&code[j] <= 'Z')
//大寫字母解密
{
code[j] = (code[j]-'A'-k+26)%26+'A' ;
}
j++;
}
printf("\n對應的明文:\n%s\n", code);
}
void main(void)
{
int flag = 1;
while(flag)
{
printf("\n請選擇:\n1.加密;\n2.解密;\n0.退出;\n");
scanf("%d", &flag);
switch(flag)
{
case 1:
encrypt();/*加密函數*/
break;
case 2:
decrypt();/*解密函數*/
break;
default :
break;
}
}
}
運行過程如下:
⑶ C語言!凱撒演算法(只加密)的源代碼
凱撒密碼的原理是字母與字母之間的替換。例如26個字母都向後移動K位。若K等於2,則A用C代替,B用D代替,以此類推。
#include<stdio.h>
#include<conio.h>
intmain(){
intkey;
charmingma,mima;
printf(" Pleaseinputthecharacter:");
scanf("%c",&mingma);//輸入明碼
printf(" Pleaseinputthekey:");
scanf("%d",&key);//輸入秘鑰
if((mingma>='A')&&(mingma<='Z'))
mima='A'+(mingma-'A'+key)%26;//大寫字母移位
elseif((mingma>='a')&&(mingma<='z'))
mima='a'+(mingma-'a'+key)%26;//小寫字母移位
printf(" Theoutputis:%c",mima);//輸出密碼
printf(" Finished! ");
getch();
return0;
}
⑷ jmu-python-凱撒密碼加密演算法,謝謝
def encryption():
str_raw = input("請輸入明文:")
k = int(input("請輸入位移值:"))
str_change = str_raw.lower()
str_list = list(str_change)
str_list_encry = str_list
i = 0
while i < len(str_list):
if ord(str_list[i]) < 123-k:
str_list_encry[i] = chr(ord(str_list[i]) + k)
else:
print ("解密結果為:"+"".join(str_list_decry))
while True:
print (u"1. 加密")
print(u"2. 解密")
choice = input("請選擇:")
if choice == "1": encryption()
elif choice == "2": decryption()
else: print (u"您的輸入有誤!")
⑸ 凱撒演算法是對稱加密演算法還是非對稱加密演算法為什麼
屬於對稱加密演算法
凱撒演算法屬於古典密碼,是對稱加密演算法最簡單的形式
⑹ 凱撒演算法是屬於對稱加密演算法嗎
最早的公鑰演算法是有凱撒大帝發明的,所以也叫凱撒演算法,凱撒演算法是很簡單的演算法,它的學名是「單表替換演算法」。就如同這個演算法名稱的字面意思一樣,他把一個字母替換成另一個字母,比如:把 "a" 替換成 "b", "c" 替換成 "d" 以此類推, 直到把 "z" 替換成 "a",這里每個字母都備下一個字母替換,所以密鑰就是1(如果密鑰是2則把 "a" 替換成 "c")。
它不是對稱加密演算法!
⑺ 請採用凱撒加密演算法對以下明文進行加密,密鑰K=3,請寫出密文
Tb tfii doxarxqb colj qeb rkfsbopfqv xcqbo clro vbxop exoa pqrav
愷撒密碼
愷撒方陣
⑻ 有誰知道凱撒演算法是怎麼回事啊
凱撒密碼是一種非常古老的加密方法,相傳當年凱撒大地行軍打仗時為了保證自己的命令不被敵軍知道,就使用這種特殊的方法進行通信,以確保信息傳遞的安全。他的原理很簡單,說到底就是字母於字母之間的替換。下面讓我們看一個簡單的例子:「」用凱撒密碼法加密後字元串變為「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);
}
⑼ 設明文m為:meet anna after this meeting,凱撒密碼演算法中使用密鑰k=3,加密後密文是什麼
將26個愷撒密表合成一個,見下表:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A -A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B -B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C-C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D- D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E -E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F -F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G- G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H -H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I- I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J -J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K -K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L -L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
M -M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N -N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O -O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P -P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q -Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R -R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S -S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T -T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U -U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V -V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W -W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X -X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y -Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z -Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
根據這個你那個密文應該是OGGV CPPC CHVGT VJKU OGGVKPI
⑽ 求解凱撒密碼演算法的題目
C的編程思路,其它的語言不會
1,用for循環,實現一維數組a【】,從第一個輸入到第六個字母,然後再用for循環把a【】從0到5都減29,賦值到b【】,把數組b以字元變數輸出
2,同理,把密文加29,然後以字元變數輸出
具體程序不難,我這里沒有c編譯軟體。。。。。