① ftxsos用维吉尼亚加密法是什么
摘要 维吉尼亚加密法
② 学过维吉尼亚加密法的,可以解密一下。密文,zprmibfy,秘钥,red。解密出来··谢谢了!
qtudmewc 是不是不规则的啊 要是解密出来是规则的英语单词的话无视我
③ 使用维吉尼亚密码,使用密钥串“test”将文明hello+world转换为密文
摘要 将明文分成若干个分组,每个分组为m个字母长度(即密钥字的长度);
④ 寻求:维吉尼亚密码自动加密器。
需要使用CP Pascal Editor v3.7打开
顺便说明一下,这是我在做科技创新大赛的作品的一部分,请注意使用。
Program vigenere;
var
ans:array[0..101]of char;
c:char;s:string;
i,n,tot,len,j:longint;
begin
j:=0;tot:=0;
writeln('请输入密钥:');
readln(s);
len:=length(s);
writeln('请输入明文:');
while not eoln do
begin
read(c);
inc(j);
inc(tot);
if j>len then j:=1;
n:=ord(s[j])-96-1;
if ord(c)>122-n then
ans[tot]:=chr(ord(c)-26+n)
else ans[tot]:=chr(ord(c)+n);
end;
writeln('密文是:');
for i:=1 to tot do write(ans[i]);
readln;
readln
end.
解密程序:
var
ans:array[0..101]of char;
c:char;s:string;
i,n,tot,len,j:longint;
begin
j:=0;tot:=0;
writeln('请输入密钥:');
readln(s);
len:=length(s);
writeln('请输入密文:');
while not eoln do
begin
read(c);
inc(j);
inc(tot);
if j>len then j:=1;
n:=ord(s[j])-96-1;
if ord(c)>ord('a')+n-1 then
ans[tot]:=chr(ord(c)-n)
else ans[tot]:=chr(ord(c)+26-n);
end;
writeln('明文是:');
for i:=1 to tot do write(ans[i]);
readln;
readln
end.
⑤ 维吉尼亚密码该 怎么用
人们在单一恺撒密码的基础上扩展出多表密码,称为“维吉尼亚”密码。它是由16世纪法国亨利三世王朝的布莱瑟·维吉尼亚发明的,其特点是将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
维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:
TO BE OR NOT TO BE THAT IS THE QUESTION
当选定RELATIONS作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R,因此可以找到在R行中代替T的为K,依此类推,得出对应关系如下:
密钥:RELAT IONSR ELATI ONSRE LATIO NSREL
明文:TOBEO RNOTT OBETH ATIST HEQUE STION
密文:KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY
⑥ 维吉尼亚加密算法如何加密任意格式的文件
维吉尼亚算法如果仅仅作用于字符集在A到Z a到z,0到9这样的范围,就叫对“英文文本”实施加密
这个英文文本的范围,A到Z等于字节值65到90, a到z等于字节值97到122,0到9等于字节值48到57。中间是断续的几个区间
算法如果改动一下,把字符集扩大到0到255,相当于对256个字母重新编排密码本,而不局限于英文文本的26个字母。这样就能对一个字节的所有情况进行加密。能对字节加密,所有的文件都以字节为基本存储单位,也就实现了对任何文件、任何数据的加密。
如果之前英文文本的处理是自己写的,稍加改动就能变成处理256个字母。
⑦ 关于维吉尼亚密码的一个问题
你所说的“这个维吉尼亚密码”指的是哪个维吉尼亚密码?
好吧,我知道了,是网络的(答你这题还得有点联想能力……)
“TO BE OR NOT TO BE THAT IS THE QUESTION
当选定RELATIONS作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R”
额,上面不是说了吗用"RELATIONS"作为密钥那么明文第一个字母T对应的密钥就是R。你要想问"RELATIONS"这个密钥砸来的?我告诉你,想来的,这个密钥你想用啥单词就用啥单词,越生僻的单词越好,选完密钥后加密,但密钥长度不够,那么就重复使用,如下:
密钥:RELAT IONSR ELATI ONSRE LATIO NSREL
明文:TOBEO RNOTT OBETH ATIST HEQUE STION
密文:KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY
给你个维吉尼亚密码加密解密用的程序,使用后就能更好理解:
http://hi..com/%B7%E7%F3%DD%B5%C4%CC%EC%BF%D5%C0%B6%D2%AB/blog/item/0f65c019326c000d35fa41f0.html
(别告诉我这是个只上一次的小号……我的采纳率被这种号害惨了……)
⑧ 维吉尼亚密码的加密方法
维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:
TO BE OR NOT TO BE THAT IS THE QUESTION
当选定RELATIONS作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R,因此可以找到在R行中代替T的为K,依此类推,得出对应关系如下:
密钥:RELAT IONSR ELATI ONSRE LATIO NSREL
明文:TOBEO RNOTT OBETH ATIST HEQUE STION
密文:KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY
历史上以维吉尼亚密表为基础又演变出很多种加密方法,其基本元素无非是密表与密钥,并一直沿用到二战以后的初级电子密码机上。
公元16世纪晚期,想要获得更高的保密度的人获得了一种设计更加精细的密码表。
⑨ 数据文件的维吉尼亚加密程序
#include
#include
void menu()/*菜单*/
{
clrscr();
printf("\n===============================================================================");
printf("\n1.Encrypt the file");
printf("\n2.Decrypt the file");
printf("\n3.Quit\n");
printf("===============================================================================\n");
printf("Please select a item:");
return;
}
char encrypt(char ch1,char ch2)/*加密程序*/
{
if(ch1>='A'&&ch1<='Z'&&ch2>='A'&&ch2<='Z')
{
return 'A'+(ch1-'A'+ch2-'A')%26;
}
if(ch1>='a'&&ch1<='z'&&ch2>='a'&&ch2<='z')
{
return 'a'+(ch1-'a'+ch2-'a')%26;
}
return ch1;
}
char decrypt(char ch1,char ch2)/*解密程序*/
{
if(ch1>='A'&&ch1<='Z'&&ch2>='A'&&ch2<='Z')
{
return 'A'+(ch1-'A'+26-(ch2-'A'))%26;
}
if(ch1>='a'&&ch1<='z'&&ch2>='a'&&ch2<='z')
{
return 'a'+(ch1-'a'+26-(ch2-'a'))%26;
}
return ch1;
}
main()
{
int i;
char key[50];
char ch;
FILE *in,*out;
char infile[20],outfile[20];
textbackground(BLACK);
textcolor(LIGHTGREEN);
clrscr();
clrscr();
sleep(3);
menu();
ch=getch();
while(ch!='3')
{
if(ch=='1')
{
clrscr();
printf("\nPlease input the infile:");
scanf("%s",infile);/*输入需要加密的文件名*/
if((in=fopen(infile,"r"))==NULL)
{
printf("Can not open the infile!\n");
printf("Press any key to exit!\n");
getch();
exit(0);
}
printf("Please input the key:");
scanf("%s",key);/*输入加密密码*/
printf("Please input the outfile:");
scanf("%s",outfile);/*输入加密后文件的文件名*/
if((out=fopen(outfile,"w"))==NULL)
{
printf("Can not open the outfile!\n");
printf("Press any key to exit!\n");
fclose(in);
getch();
exit(0);
}
i=0;
while(!feof(in))
{
fputc(encrypt(fgetc(in),key[i%strlen(key)]),out);
i++;
}
fclose(in);
fclose(out);
printf("\nEncrypt successful!\n");
sleep(1);
}
if(ch=='2')
{
clrscr();
printf("\nPlease input the infile:");
scanf("%s",infile);/*输入需要解密的文件名*/
if((in=fopen(infile,"r"))==NULL)
{
printf("Can not open the infile!\n");
printf("Press any key to exit!\n");
getch();
exit(0);
}
printf("Please input the key:");
scanf("%s",key);/*输入解密密码*/
printf("Please input the outfile:");
scanf("%s",outfile);/*输入解密后文件的文件名*/
if((out=fopen(outfile,"w"))==NULL)
{
printf("Can not open the outfile!\n");
printf("Press any key to exit!\n");
fclose(in);
getch();
exit(0);
}
i=0;
while(!feof(in))
{
fputc(decrypt(fgetc(in),key[i%strlen(key)]),out);
i++;
}
fclose(in);
fclose(out);
printf("\nDecrypt successful!\n");
sleep(1);
}
menu();
ch=getch();
}
clrscr();
logo();
printf("\nGood Bye!\n");
sleep(3);