凯撒算法
⑴ 用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编译软件。。。。。