信息安全实验-凯撒加密加法乘法变换
凯撒加密法实验报告
一、实验目的1. 理解凯撒加密法的原理和步骤。
2. 掌握凯撒加密和解密的方法。
3. 通过实验,加深对加密技术的认识。
二、实验原理凯撒加密法是一种最简单的替换加密技术,其原理是将明文中的每个字母按照字母表的顺序向后(或向前)移动一个固定的位数,生成密文。
例如,当偏移量为3时,明文中的字母A将被替换成密文中的字母D,B变成E,以此类推。
凯撒加密法的加密和解密过程如下:1. 加密过程:(1)将明文中的每个字母按照字母表的顺序向后(或向前)移动一个固定的位数;(2)将移动后的字母替换成密文。
2. 解密过程:(1)将密文中的每个字母按照字母表的顺序向前(或向后)移动一个固定的位数;(2)将移动后的字母替换成明文。
三、实验内容1. 使用凯撒加密法对一段明文进行加密和解密。
(1)选择一段明文,例如:“Hello, World!”;(2)设置一个固定的偏移量,例如:3;(3)按照加密过程,将明文中的每个字母向后移动3位,生成密文;(4)按照解密过程,将密文中的每个字母向前移动3位,还原成明文。
2. 分析凯撒加密法的优缺点。
优点:(1)实现简单,易于理解和操作;(2)加密和解密速度快。
缺点:(1)密钥空间小,容易破解;(2)安全性较低,容易受到攻击。
四、实验步骤1. 创建一个函数,实现凯撒加密和解密功能。
```pythondef caesar_encrypt(text, shift):encrypted_text = ""for char in text:if char.isalpha():shift_amount = shift % 26if char.isupper():encrypted_text += chr((ord(char) - ord('A') + shift_amount) % 26 + ord('A'))else:encrypted_text += chr((ord(char) - ord('a') + shift_amount) % 26 + ord('a'))else:encrypted_text += charreturn encrypted_textdef caesar_decrypt(text, shift):decrypted_text = ""for char in text:if char.isalpha():shift_amount = shift % 26if char.isupper():decrypted_text += chr((ord(char) - ord('A') - shift_amount) % 26 + ord('A'))else:decrypted_text += chr((ord(char) - ord('a') - shift_amount) % 26 + ord('a'))else:decrypted_text += charreturn decrypted_text```2. 使用该函数对一段明文进行加密和解密。
凯撒密码实验报告
凯撒密码实验报告
1. 引言
凯撒密码是一种古老的替换加密算法,它通过将字母按照固定的位数向后或向
前移动来实现加密和解密。
本实验的目的是通过凯撒密码的加密过程来学习和理解基本的密码学原理。
2. 实验步骤
2.1 凯撒密码的加密
1.首先,选择一个固定的移位数,通常称为密钥。
2.将明文中的每个字母按照密钥向后移动相应的位数。
若密钥为3,
则’A’变为’D’,’B’变为’E’,以此类推。
3.加密后的密文即为移动后的字母序列。
2.2 凯撒密码的解密
1.使用相同的密钥,将密文中的每个字母向前移动相应的位数,即可得
到明文。
3. 实验过程
我们以一个简单的例子来说明凯撒密码的加密和解密过程。
3.1 加密
我们选择密钥为3,明文为“HELLO WORLD”。
依照加密步骤,我们将明文中的每个字母向后移动3个位置,得到加密后的密
文为“KHOOR ZRUOG”。
3.2 解密
使用相同的密钥,将密文中的每个字母向前移动3个位置,即可得到明文。
依照解密步骤,我们将密文“KHOOR ZRUOG” 中的每个字母向前移动3个位置,得到解密后的明文为“HELLO WORLD”。
4. 结论
通过本实验,我们了解了凯撒密码的基本原理以及加密和解密的过程。
凯撒密
码是一种简单的替换加密算法,但其安全性较低,容易被破解。
在实际应用中,可以通过增加密钥的长度、使用多次移位等方式提高密码的安全性。
5. 参考资料
[1] 网络安全概论. 北京:电子工业出版社,2014.。
信息加密与解密实验1-1 经典密码——凯撒密码
上机实验报告一、实验目的:本次上机实践所涉及并要求掌握的知识点。
1、理解凯撒密码的加密、解密过程二、实验环境PC机一台三、实验内容实验一移动3位的凯撒密码:1.(1)用移动3位的凯撒密码加密“keep this secret”(2)用移动3位的凯撒密码加密你的某位老师的名字2.破译下列谜语的答案。
这些答案是用移动3位的凯撒密码来加密的。
(1)谜语:What do you call a sleeping bull?(你怎么称呼一只睡着的公牛?)答案: D EXOOGRCHU(2)谜语:What is the different between a teacher and a train?(老师与火车的区别是什么?)答案:WKH WHDFKHU VDBV “QR JXP DOORZHG”WKH WUDLQ VDBV “FKHZ FKHZ”实验二移动4位的凯撒密码:1.请解密下面伊薇写给艾比的便条,她使用的是移动4位的凯撒密码WSVVC PIX’W YWI GMTLIVW JVSQ RSA SR2.谜语:What do you call a dog at the beach ?(你怎么称呼一只在海滩上的狗?)答案(移动4位密码):E LSX HSK实验三凯撒密码破解:1.凯撒密码破解密文:NGBKGMUUJZOSK实验四用数传递信息的方法破译以下的谜语:1.谜语:What kind of cookies do birds like?(鸟儿喜欢什么种类的饼干?)答案:2,7,14,2,14,11,0,19,4 2,7,8,17,152.谜语:What always ends everything?(什么总是能终结所有事情?)答案:19,7,4 11,4,19,19,4,17四、实验总结通过上机实践,对所学内容的某个知识点有了更深入的理解,写出一些体会、学习心得,甚至是改进意见。
也可以写对界面设计、算法设计、代码编写、程序调试、程序改进等相关的收获、感悟。
密码学构造加法和乘法表
密码学构造加法和乘法表
密码学中的加法和乘法表通常用于实现一种称为密码算法的加密和解密过程。
这些表可以帮助我们理解密码算法是如何对数据进行加密和解密的。
首先,让我们来看加法表。
加法表是一个简单的表格,其中列出了所有可能的加法组合。
假设我们使用的是一个字母表,那么加法表将列出字母与字母之间的所有可能的加法结果。
例如,如果我们使用的是26个字母的英语字母表,那么加法表将包含26行和26列,每个单元格中的值表示两个字母相加的结果。
这种加法表可以用于一种称为凯撒密码的简单替换加密算法中,其中字母按照表中的值进行移位。
接下来是乘法表。
乘法表同样是一个表格,用于记录两个数字相乘的结果。
在密码学中,乘法表通常用于一种称为Hill密码的线性代数密码算法中。
在Hill密码中,乘法表包含了一个特定的数字域中的所有可能的乘法结果。
这种表格可以用于将一个向量与一个矩阵相乘,从而实现对数据的加密和解密操作。
总的来说,加法表和乘法表是密码学中用于实现加密和解密算
法的重要工具。
它们帮助我们理解密码算法是如何对数据进行转换和处理的,从而实现保护数据的安全性。
这些表格的设计和使用需要谨慎,以确保加密算法的安全性和有效性。
恺撒密码实验报告
实验二恺撒密码一、实验目的1. 掌握Java数组的基本操作。
2.掌握String类的生成、访问、修改等基本操作;3.掌握StringBuffer类的生成、访问、修改等基本操作。
4. 掌握 Pattern和Matcher对象的用法,以及正则表达式的应用二、实验要求1.正确地定义数组;2.正确对数组元素进行赋值、排序。
3.正确使用String类的方法;4.正确使用StringBuffer类的方法。
5. 正确书写正则表达式和使用Pattern和Matcher对象三、实验环境1.计算机一台;2.JDK、MyEclipse工具软件。
四、实验内容1.编写Application程序,实现凯撒密码,输入明文自动输出相应的密文。
五、实验步骤1.处理输入,每次读入一行。
2.将该行转换为字符数组,依次处理每个字符,英文字母转换成相应的密文,其他字符(如标点符号)的密文和明文相同。
3. 整体输出该行的密文。
4. 选作:允许用户扩展凯撒密码,指定字符替换的规则,即可以输入密钥六、凯撒密码介绍凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。
他的原理很简单,说到底就是字母于字母之间的替换。
下面让我们看一个简单的例子:“baidu”用凯撒密码法加密后字符串变为“edlgx”,它的原理是什么呢?把“baidu”中的每一个字母按字母表顺序向后移3位,所得的结果就是刚才我们所看到的密文。
七、实验结果源代码为:package youximima;import java.util.*;public class Mima {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub//Scanner s =new Scanner(System.in);System.out.println("凯萨密码!");System.out.println("请输入一串字符!");int k=1;while(k==1){System.out.println("凯撒密码法加密后的字符串为:");Scanner s =new Scanner(System.in);String c=s.nextLine();int i=c.length();if(i<=10){char a[]=c.toCharArray();System.out.println(a);for(int j=0;j<a.length;j++){ if(a[j]>='a'&&a[j]<='z')if(a[j]=='x')a[j]='a';else if(a[j]=='y')a[j]='b';else if(a[j]=='z')a[j]='c';else a[j]+=3;if(a[j]>='A'&&a[j]<='Z')if(a[j]=='X')a[j]='A';else if(a[j]=='Y')a[j]='B';else if(a[j]=='Z')a[j]='C';else a[j]+=3;}System.out.print("原文为:");System.out.println(a);}else System.out.println("密码个数超过限制范围!");System.out.println("需要继续吗? 若继续请按1, 退出按0!");int m=s.nextInt();k=m;}System.out.println("欢迎下次使用!");}}结果为:凯萨密码!请输入一串字符!凯撒密码法加密后的字符串为:alk12@#xzalk12@#xz原文为:don12@#ac需要继续吗? 若继续请按1, 退出按0! 1凯撒密码法加密后的字符串为: sjkfJKJ%^YZ密码个数超过限制范围!需要继续吗? 若继续请按1, 退出按0! 1凯撒密码法加密后的字符串为:SFJ*8^knyzSFJ*8^knyz原文为:VIM*8^nqbc需要继续吗? 若继续请按1, 退出按0! 0欢迎下次使用!。
凯撒密码实验报告
凯撒密码的实验报告一、实验目的通过实验熟练掌握凯撒密码算法,学会凯撒密码算法程序设计。
二、实验环境软件工具:Visual C++ 6.0操作系统:windows xp三、实验思想在密码学中存在着各种各样的置换方式,但所有不同的置换方式都包含2个相同的元素。
密钥和协议(算法)。
凯撒密码的密钥是3,算法是将普通字母表中的字母用密钥对应的字母替换。
置换加密的优点就在于它易于实施却难于破解. 发送方和接收方很容易事先商量好一个密钥,然后通过密钥从明文中生成密文,即是敌人若获取密文,通过密文直接猜测其代表的意义,在实践中是不可能的。
凯撒密码的加密算法极其简单。
其加密过程如下:在这里,我们做此约定:明文记为m,密文记为c,加密变换记为E(k1,m)(其中k1为密钥),解密变换记为D(k2,m)(k2为解密密钥)(在这里不妨假设k1=k2,记为k)。
凯撒密码的加密过程可记为如下一个变换:c?m+k mod n (其中n为基本字符个数) 同样,解密过程可表示为:m?c+k mod n (其中n为基本字符个数)四、实验数据(源代码)#include<stdio.h>#include<string.h>#include<stdlib.h>void ENC(char str[],int n){char c;int i = 0;while(str[i]){c=str[i];if(c>='a'&&c<='z')if(c+n%26<='z')str[i]=(char)(c+n%26);elsestr[i]=(char)('a'+((n-('z'-c)-1)%26));else if(c>='A'&&c<='Z')if(c+n%26<='Z')str[i]=(char)(c+n%26);elsestr[i]=(char)('A'+((n-('Z'-c)-1)%26));elsestr[i]=c;i++;}printf("\n密文:");puts(str);}void DEC(char str[],int n){char c;int i = 0;while(str[i]){c=str[i];if(c>='a'&&c<='z')if(c-n%26>='a')str[i]=(char)(c-n%26);elsestr[i]=(char)('z'-(n-(c-'a')-1)%26);else if(c>='A'&&c<='Z')if(c-n%26>='A')str[i]=(char)(c-n%26);elsestr[i]=(char)('Z'-(n-(c-'A')-1)%26);elsestr[i]=c;i++;}printf("\n明文:");puts(str);}int main(){int k=0;char str[100]={0};int n=0,i=1;printf("please input strings.\n");gets(str);printf("you input:\n");puts(str);printf("Please input number:\n");scanf("%d",&n);printf("1:Encryption\n");printf("2:Decryption\n");printf("3:EXIT\n");printf("Please choose:\n");scanf("%d",&k);switch(k){case 1:ENC(str,n);case 2:DEC(str,n);case 3:exit(0);}}五、实验结果。
凯撒密码乘法加解密
if((in=fopen(infile,"r"))==NULL)
{
printf("Can not open theinfile!\n");
printf("Press any key to exit!\n");
getch();
exit(0);
printf("\nGoodBye!\n");
}
FILE *in,*out;
charinfile[20],outfile[20];
textbackground(BLACK);
textcolor(LIGHTGREEN);
clrscr();
menu();
ch0=getch();
while(ch0)
{
if(ch0=='1')
{
clrscr();
printf("\nPleaseinput theinfile:");
凯撒密码乘法加解密凯撒密码解密凯撒密码在线解密凯撒密码解密软件凯撒密码解密工具凯撒加密解密算法凯撒解密凯撒密码加密凯撒密码凯撒密码算法
乘法加解密程序:
#include<stdio.h>
#include<conio.h>
intsa[100];
intG=0;
intH=0;
char encrypt(charch,intn)/*加密ntf("\nEncryptis over!\n");
fclose(in);
fclose(out);
}
else
信息安全之凯撒密码
计科一班刘亮学号:2009221104210051实验一:凯撒密码一:实验目的理解和掌握凯撒密码的原理,可以简单解密。
二、实验原理凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。
例如,如果密匙是把明文字母的位数向后移动三位,那么明文字母B就变成了密文的E,依次类推,X将变成A,Y变成B,Z变成C,由此可见,位数就是凯撒密码加密和解密的密钥。
它是一种代换密码。
据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。
实验原理:将明文中的每个字母用引字符在字母表中后面第k个字母替代。
它的加密过程可以表示为下面函数:E(m)=(m+k) mod n其中,m为明文字母在字母表中的位置数;n为字母表中的字母个数;k为密钥;E(m)为密文字母在字母表中对应的位置数。
同理可得解密过程。
实验内容:根据实验原理,自己创建明文信息,并选择一个密钥,编写循环移位密码算法的实现程序,实现加密和解密操作。
要求上述密码算法最后的实现程序提供加密和解密两个接口:int encrypt() 和int decrypt()。
当加密或者解密成功时返回CRYPT_OK, 失败时返回CRYPT_ERROR。
所谓的“恺撒密码”,它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。
因据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。
这是一种简单的加密方法,这种密码的密度是很低的,只需简单地统计字频就可以破译。
现今又叫“移位密码”,只不过移动的为数不一定是3位而已。
三、实验步骤密码术可以大致别分为两种,即易位和替换,当然也有两者结合的更复杂的方法。
在易位中字母不变,位置改变;替换中字母改变,位置不变。
尽管苏托尼厄斯仅提到三个位置的恺撒移位,但显然从1到25个位置的移位我们都可以使用,因此,为了使密码有更高的安全性,单字母替换密码就出现了。
作业1-凯撒密码的加密、解密和破解
作业1-凯撒密码的加密、解密和破解光信学院《网络信息安全》实验报告1班级:学号:姓名:实验时间:年月日指导教师:陈顺凡一.实验目的理解网络信息安全的基本原理,掌握基本密码技术的原理及编程能力。
二.实验原理和内容[凯撒介绍]凯撒密码(kaiser)是罗马扩张时期朱利斯"凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令。
它将字母表中的字母移动一定位置而实现加密。
[加密原理]凯撒密码的加密算法极其简单。
其加密过程如下:在这里,我们做此约定:明文记为m,密文记为c,加密变换记为E(k1,m)(其中k1为密钥),解密变换记为D(k2,m)(k2为解密密钥)(在这里k1=k2,不妨记为k)。
凯撒密码的加密过程可记为如下一个变换:c≡m+k mod n (其中n为基本字符个数)同样,解密过程可表示为:m≡c-k mod n (其中n为基本字符个数)对于计算机而言,n可取256或128,m、k、c均为一个8bit 的二进制数。
显然,这种加密算法极不安全,即使采用穷举法,最多也只要255次即可破译。
当然,究其本身而言,仍然是一个单表置换,因此,频率分析法对其仍是有效的。
.[破解原理]一篇包含字符的英文文章,其各ASCII码字符出现,都有一定的频率,下面是对Google上随意搜索到的英文文章进行分析的结果,见表:QUOTE:====================================== =========== FileName : 01.txt[1] 32: times:204[2] 101:e times:134[3] 116:t times:91[4] 105:i times:87[5] 111:o times:77[6] 108:l times:75[7] 97:a times:75[8] 110:n times:69[9] 10:times:67[10] 115:s times:63====================================== =========== FileName : php.si.source.txt[1] 32: times:576[2] 101:e times:162[3] 115:s times:153[4] 110:n times:141[5] 114:r times:138[6] 105:i times:135[7] 10:times:134[8] 116:t times:129[9] 42:* times:116[10] 111:o times:103====================================== =========== FileName : work.txt[1] 32: times:51322[2] 101:e times:30657[3] 116:t times:23685[4] 97:a times:19038[5] 111:o times:17886[6] 105:i times:16156[7] 110:n times:15633[8] 114:r times:15317[9] 115:s times:15226[10] 104:h times:12191====================================== =========== FileName : 02.txt[1] 32: times:299[2] 101:e times:217[3] 110:n times:136[4] 105:i times:133[5] 111:o times:124[6] 116:t times:116[7] 97:a times:110[8] 115:s times:98[9] 114:r times:92[10] 108:l times:82====================================== =========== FileName : 03.txt[1] 45:- times:404[2] 32: times:394[3] 101:e times:237[4] 116:t times:196[5] 114:r times:173[6] 97:a times:163[7] 105:i times:161[8] 110:n times:153[9] 111:o times:142[10] 115:s times:129====================================== =========== FileName : 04.txt[1] 32: times:326[2] 101:e times:179[3] 116:t times:106[4] 105:i times:101[5] 111:o times:96[6] 110:n times:94[7] 97:a times:92[8] 115:s times:78[9] 100:d times:61[10] 114:r times:60====================================== =========== FileName : 05.txt[1] 32: times:441[2] 101:e times:191[3] 111:o times:151[4] 116:t times:120[5] 97:a times:112[6] 110:n times:108[7] 105:i times:91[8] 114:r times:84[9] 117:u times:79[10] 115:s times:79有此分析可知,一篇英文文章中,出现较高频率的两个字符是' ' (空格) 和 'e',而且它们的ASCII码分别是32和101,差值是69。
网络安全恺撒密码加密
网络安全恺撒密码加密恺撒密码又称凯撒密码,是最早历史上使用的密码加密方式之一,它是通过改变字母的位置来对消息进行加密。
这种加密方法非常简单,用途广泛,而且易于理解和实现。
恺撒密码的加密过程是将明文中的每个字母往后移动固定的位置,这个固定的位置称为偏移量。
例如,偏移量为3,则明文中的每个字母都向后移动3个位置。
移动之后如果超出了字母表的范围,则从字母表的开头重新开始计数。
解密过程正好相反,将密文中的每个字母往前移动偏移量的位置。
例如,使用偏移量为3的恺撒密码加密明文"HELLO",加密后的密文为"KHOOR"。
解密过程就是将密文中的每个字母向前移动3个位置,即"H"->"E","E"->"B","L"->"I","L"->"I","O"->"L",解密后得到明文"EBBIL"。
恺撒密码的特点是简单易懂,适用于只需进行轻度加密的场景。
然而,由于加密方式单一,可能存在被暴力破解的风险。
因此,在实际应用中,通常会采用更加复杂的加密算法来提高安全性。
对于恺撒密码的破解攻击,最常见的是暴力破解。
攻击者通过尝试所有可能的偏移量来解密密文,直到找到正确的明文。
由于恺撒密码的偏移量范围有限,通常只有26种可能,因此暴力破解的效率相对较高。
为了提高安全性,可以增加偏移量的范围,或者使用多层嵌套的恺撒密码进行加密。
总的来说,恺撒密码是一种简单而古老的加密方式,适用于轻度加密的场景,但在高安全性要求的场景中往往不够安全。
因此,在实际应用中,我们通常会选择更加复杂而安全的加密算法来保护网络安全。
凯撒密码编程实验报告(3篇)
第1篇一、实验目的1. 理解凯撒密码的基本原理和加密解密过程;2. 掌握C语言编程实现凯撒密码;3. 提高编程能力和密码学基础知识。
二、实验环境1. 软件工具:Visual Studio 20192. 操作系统:Windows 10三、实验内容1. 凯撒密码原理介绍凯撒密码是一种最简单的移位密码,通过将字母表中的每个字母向前或向后移动固定数量位置来进行加密和解密。
例如,密钥为3时,A会被加密为D,B会被加密为E,以此类推。
解密过程是将密文中的每个字母向前或向后移动相同的位数,恢复出明文。
2. C语言实现凯撒密码(1)加密函数```cvoid caesar_encrypt(char input, char output, int key) {int i = 0;while (input[i] != '\0') {if (input[i] >= 'A' && input[i] <= 'Z') {output[i] = ((input[i] - 'A' + key) % 26) + 'A';} else if (input[i] >= 'a' && input[i] <= 'z') {output[i] = ((input[i] - 'a' + key) % 26) + 'a';} else {output[i] = input[i];}i++;}output[i] = '\0';}```(2)解密函数```cvoid caesar_decrypt(char input, char output, int key) {int i = 0;while (input[i] != '\0') {if (input[i] >= 'A' && input[i] <= 'Z') {output[i] = ((input[i] - 'A' - key + 26) % 26) + 'A'; } else if (input[i] >= 'a' && input[i] <= 'z') {output[i] = ((input[i] - 'a' - key + 26) % 26) + 'a'; } else {output[i] = input[i];}i++;}output[i] = '\0';}```3. 测试程序```cinclude <stdio.h>include <string.h>void caesar_encrypt(char input, char output, int key) { // 加密函数}void caesar_decrypt(char input, char output, int key) { // 解密函数}int main() {char input[100], output[100];int key;printf("请输入密钥(1-25): ");scanf("%d", &key);printf("请输入明文: ");scanf("%s", input);caesar_encrypt(input, output, key);printf("加密结果: %s\n", output);caesar_decrypt(output, input, key);printf("解密结果: %s\n", input);return 0;}```四、实验结果与分析1. 实验结果(1)输入密钥为3,明文为"hello world",加密结果为"kiho world",解密结果为"hello world";(2)输入密钥为5,明文为"goodbye world",加密结果为"jvvhv world",解密结果为"goodbye world"。
凯撒加密解密上机实验报告
计算机安全基础凯撒加密解密上机实验报告学院年级专业班学生姓名学生学号实验一凯撒加密解密凯撒密码简介:恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。
例如,当偏移量是左移3的时候(解密时的密钥就是3):明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ 密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。
需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。
例如:明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ源代码:#include "kaisa.h"using namespace std;void Kaisa::setI(){cout << "\n请输入加密密码:";cin >> i;}void Kaisa::jiami(){char a, b, c;cout << "\n请输入明文:\t";cin >> a;b = char('z' - i%26);c = char('Z' - i%26);cout << "\n密文是:\t";while(a != '\n'){if((a <= 'z' && a >= 'a') || ( a <= 'Z' && a >='A')){ if((a <= b && a >= 'a') || ( a <= c && a >='A'))cout << char(a + i%26);if(a > c && a <= 'Z')cout << char(a + i%26 - 26);if(a > b && a <= 'z')cout << char(a + i%26 - 26);if(a == ' ')cout << " ";}elsecout << a;a = cin.get();}cout << endl;}void Kaisa::setX(){cout << "\n请输入解密密码:";cin >> i;}void Kaisa::jiemi(){char a, b, c;cout << "\n请输入密文:\t";cin >> a;b = char('a' + i%26);c = char('A' + i%26);cout << "\n明文是:\t";while(a != '\n'){if((a <= 'z' && a >= 'a') || ( a <= 'Z' && a >='A')) { if((a <= 'z' && a >= b) || ( a <= 'Z' && a >= c)) cout << char(a - i%26);if(a >= 'a' && a < b)cout << char(a - i%26 + 26);if(a >= 'A' && a < c)cout << char(a - i%26 + 26);if(a == ' ')cout << " ";}elsecout << a;a = cin.get();}cout << endl;}int main(){while(1){int t;cout << "1.加密" << endl<< "2.解密" << endl<<"按其他键退出"<<endl<< "选择:";cin >> t;Kaisa kaisa;if(t == 1){kaisa.setI();kaisa.jiami();cout<<"加密完成\n"<<endl;}else if(t == 2){kaisa.setX();kaisa.jiemi();cout<<"解密完成\n"<<endl;}elsereturn 0;}}测试:密钥:4,明文:abcdefg 实验结果:实验二DES加密解密加密原理:DES 使用一个56 位的密钥以及附加的8 位奇偶校验位,产生最大64 位的分组大小。
凯撒密码的实验报告
凯撒密码的实验报告凯撒密码的实验报告引言:密码学作为一门古老而神秘的学科,一直以来都吸引着人们的兴趣。
而凯撒密码作为密码学的基础,其简单而又经典的加密方式,更是备受研究者和爱好者的关注。
本实验旨在通过对凯撒密码的实践应用,深入了解其原理和加密解密过程。
一、凯撒密码的原理凯撒密码,又称移位密码,是一种最早被记录的密码系统。
其基本原理是通过将明文中的每个字母按照一定的规则进行移位,从而得到密文。
在凯撒密码中,移位的规则是将字母按照顺序向后移动固定的位置,例如向后移动3个位置,即A变成D,B变成E,以此类推。
二、实验步骤1. 确定移位规则:在本次实验中,我们选择了向后移动3个位置的规则进行加密和解密。
2. 加密过程:将明文中的每个字母按照移位规则进行替换,得到对应的密文。
例如,明文中的字母A将被替换为D,字母B将被替换为E,以此类推。
3. 解密过程:将密文中的每个字母按照移位规则进行逆向替换,得到对应的明文。
例如,密文中的字母D将被替换为A,字母E将被替换为B,以此类推。
三、实验结果通过对凯撒密码的加密和解密实验,我们得到了以下结果:1. 加密结果:将明文“HELLO WORLD”加密后得到密文“KHOOR ZRUOG”。
2. 解密结果:将密文“KHOOR ZRUOG”解密后得到明文“HELLO WORLD”。
四、实验分析通过对凯撒密码的实验结果进行分析,我们可以得出以下结论:1. 凯撒密码的加密过程是可逆的,即通过解密过程可以还原出原始的明文。
2. 凯撒密码的加密强度较低,容易受到暴力破解的攻击。
因为凯撒密码只有26种可能的移位规则,暴力破解者可以通过尝试每一种规则来解密密文。
3. 凯撒密码的应用范围有限,适用于一些简单的信息加密场景,但在现代密码学中已经不再被广泛使用。
五、实验总结通过本次实验,我们对凯撒密码有了更深入的了解。
凯撒密码作为密码学的基础,为后来的密码学研究奠定了基础。
虽然凯撒密码的加密强度较低,但其简单易懂的原理和操作方式,使其成为初学密码学的入门工具。
凯撒密码实验报告
凯撒密码实验报告凯撒密码实验报告引言:密码学作为一门古老而又神秘的学科,一直以来都吸引着人们的兴趣。
其中,凯撒密码是最为经典的一种密码算法,它以罗马帝国的大军统帅凯撒为名,被广泛应用于古代的军事通信中。
本实验旨在通过实际操作,深入了解凯撒密码的原理和加密解密过程。
一、凯撒密码的原理凯撒密码是一种简单的替换密码,它采用了位移的方式进行加密和解密。
具体而言,凯撒密码将明文中的每个字母按照字母表中的顺序向后(或向前)移动固定的位数,从而得到密文。
例如,当位移数为3时,明文中的字母A将被替换为D,B将被替换为E,依此类推。
二、实验步骤1. 设定位移数:在实验开始前,我们需要先设定一个位移数。
为了方便比较,我们选择了位移数为3的凯撒密码。
2. 加密明文:首先,我们选择一段明文进行加密。
假设我们选择的明文是“HELLO WORLD”。
按照凯撒密码的原理,我们将每个字母向后移动3位,得到密文“KHOOR ZRUOG”。
3. 解密密文:为了验证凯撒密码的可逆性,我们将刚才得到的密文“KHOOR ZRUOG”进行解密。
按照凯撒密码的原理,我们将每个字母向前移动3位,得到明文“HELLO WORLD”。
三、实验结果与分析通过实验,我们成功地加密了明文“HELLO WORLD”,并且通过解密密文得到了原始的明文。
这表明凯撒密码具有可逆性,加密和解密过程是相互对应的。
然而,凯撒密码也存在一些缺点。
首先,由于位移数是固定的,所以凯撒密码的密钥空间非常有限,容易受到暴力破解的攻击。
其次,凯撒密码没有考虑字母的频率分布,因此在加密后的密文中,字母的频率分布与明文相比没有变化,这也给破译者提供了线索。
为了增强凯撒密码的安全性,可以采用多次位移的方式,即多次对明文进行加密。
例如,我们可以先按照位移数3加密明文,再按照位移数5加密上一步得到的密文,这样就可以得到更复杂的密文,提高了密码的安全性。
四、实验总结凯撒密码作为密码学的经典算法,虽然在现代密码学中已经被更加安全的算法所取代,但它仍然具有重要的历史意义和教育价值。
凯撒加密解密上机实验报告
计算机安全基础凯撒加密解密上机实验报告学院年级专业班学生姓名学生学号实验一凯撒加密解密凯撒密码简介:恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。
例如,当偏移量是左移3的时候(解密时的密钥就是3):明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ 密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。
需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。
例如:明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ源代码:#include "kaisa.h"using namespace std;void Kaisa::setI(){cout << "\n请输入加密密码:";cin >> i;}void Kaisa::jiami(){char a, b, c;cout << "\n请输入明文:\t";cin >> a;b = char('z' - i%26);c = char('Z' - i%26);cout << "\n密文是:\t";while(a != '\n'){if((a <= 'z' && a >= 'a') || ( a <= 'Z' && a >='A')){ if((a <= b && a >= 'a') || ( a <= c && a >='A'))cout << char(a + i%26);if(a > c && a <= 'Z')cout << char(a + i%26 - 26);if(a > b && a <= 'z')cout << char(a + i%26 - 26);if(a == ' ')cout << " ";}elsecout << a;a = cin.get();}cout << endl;}void Kaisa::setX(){cout << "\n请输入解密密码:";cin >> i;}void Kaisa::jiemi(){char a, b, c;cout << "\n请输入密文:\t";cin >> a;b = char('a' + i%26);c = char('A' + i%26);cout << "\n明文是:\t";while(a != '\n'){if((a <= 'z' && a >= 'a') || ( a <= 'Z' && a >='A')) { if((a <= 'z' && a >= b) || ( a <= 'Z' && a >= c)) cout << char(a - i%26);if(a >= 'a' && a < b)cout << char(a - i%26 + 26);if(a >= 'A' && a < c)cout << char(a - i%26 + 26);if(a == ' ')cout << " ";}elsecout << a;a = cin.get();}cout << endl;}int main(){while(1){int t;cout << "1.加密" << endl<< "2.解密" << endl<<"按其他键退出"<<endl<< "选择:";cin >> t;Kaisa kaisa;if(t == 1){kaisa.setI();kaisa.jiami();cout<<"加密完成\n"<<endl;}else if(t == 2){kaisa.setX();kaisa.jiemi();cout<<"解密完成\n"<<endl;}elsereturn 0;}}测试:密钥:4,明文:abcdefg 实验结果:实验二DES加密解密加密原理:DES 使用一个56 位的密钥以及附加的8 位奇偶校验位,产生最大64 位的分组大小。
信息安全古典密码之凯撒密码
《网络攻击与防御》实验报告课程名称:信息安全技术实验名称:古典密码之凯撒密码指导教师:学生姓名:组号:实验日期:实验地点:实验成绩:一计算机科学与技术学院计算机系网络教研室制一、实验目的(1)编程实现凯撒加密、解密算法,理解密码学基础知识,初步建立密码学思维方式。
(2)通过不断增加凯撒解密难度,理解唯密文解密,提高解密性能。
实验环境操作系统:Windows 10操作系统软件工具:C++语言编译环境三、实验内容与实验要求(1)在允许输入密码条件下,编程实现凯撒密码加解密解密。
要求:①从一文本文件读入英文文章(明文或密文)。
②对读入内容加密或解密后写入另一文本文件。
(2)在不允许输入密码条件下,编程实现解密凯撒密码加密密文。
要求绘制三种情况下解密程序流程图,说明不同解密程序存在的不足。
程序需要计算、显示解密使用时间(单位:ms) o①已知cl =wk 1 v lv d errn,求pl。
(初级解密)问:两次使用凯撒,能否正确解密?(字符串用凯撒加密后的结果再用凯撒加密一次。
)②已知cl =go kbo cdenoxdc, 或cl =zh duh vwxghqwv, 求pl。
(中级解密)③已知cl =rxwvlgh wkh eleoh, wkhvh via zrugv duh wkh prvw idprxv Iq doo wkh olwhudwxuh ri wkh zruog. wkhb zhuh vsrnhq eb kdpohw zkhq kh zdv wklqnlqj dorxg, dqg wkhb duh wkh prvw idprxv zrugv Iq vkdnhvshduh ehfdxvh kdpohw zdv vshdnlqj qrw rqob iru klpvhoi exw dovr iru hyhub wklqnlqj pdq dqg zrpdq. wr eh ru qrw wr eh, wr olyh ru qrw wr olyh, wr olyh ulfkob dqg dexqgdqwob dqg hdjhuob, ru wr olyh gxoob dqg phdqob dqg vfdufhob. d sklorvrskhu rqfh zdqwhg wr nqrz zkhwkhu kh zdv dolyh ru qrw, zklfk lv d jrrg txhvwlrq iru hyhubrqh wr sxw wr klpvhoi rffdvlrqdoob. kh dqvzhuhg Iw eb vdblqj: 〃1 wklqn, wkhuhiruh dp. 〃,求pl。
信息安全实验报告
信息安全实验报告姓名:学号:班级:教师:卫琳娜2018-11-15实验 1:密码学实验实验目的:编程实现简单古典密码算法,加深对古典密码的理解掌握简单加解密算法设计原则实验内容:1.编程实现凯撒密码,输入任意明文(26 个英文字母中的任意一个,不区分大小写),观察明文密文关系。
程序代码 :#include <stdio.h>#include <string.h>int main(){char passwd[100],encrypted[100];int i,k=3;printf(" 请输入明文 :");gets(passwd);for(i=0; i<strlen(passwd); i++){if(passwd[i] >= 'A' && passwd[i] <= 'Z'){passwd[i] = ((passwd[i]-'A')+k)%26+'A';}else if(passwd[i] >= 'a' && passwd[i] <= 'z'){passwd[i] = ((passwd[i]-'a')+k)%26+'a';}else passwd[i]=' ';}printf(" 密文为 :%s\n",passwd);return 0;}运行结果 :2.编程实现单表代换密码,输入任意明文( 26 个英文字母中的任意一个,不区分大小写),观察明文密文关系。
程序代码 :#include <stdio.h>#include <string.h>int main(){char passwd[100],encrypted[100];int i,k;printf(" 请输入明文 :");gets(passwd);printf(" 请输入移动的值(1-25):");scanf("%d",&k);for(i=0; i<strlen(passwd); i++){if(passwd[i] >= 'A' && passwd[i] <= 'Z'){passwd[i] = ((passwd[i]-'A')+k)%26+'A';}else if(passwd[i] >= 'a' && passwd[i] <= 'z'){passwd[i] = ((passwd[i]-'a')+k)%26+'a';}else passwd[i]=' ';}printf(" 密文为 :%s\n",passwd);return 0;}运行结果 :3.自行设计并实现一种简单密码,输入任意明文字符串,输出密文。
简述凯撒密码和仿射变换密码
简述凯撒密码和仿射变换密码凯撒密码和仿射变换密码是两种经典的加密算法,它们在保护信息安全方面具有重要作用。
本文将简要介绍这两种密码算法的原理和特点。
凯撒密码是一种简单的替换密码,它是由古罗马军事家凯撒所使用的一种加密方法。
凯撒密码的原理很简单,就是通过将明文中的每个字母按照一个固定的偏移量进行替换,从而得到密文。
这个偏移量也被称为凯撒密码的密钥。
例如,当偏移量为3时,明文中的字母A会被替换为D,字母B会被替换为E,以此类推。
解密过程则是将密文中的每个字母按照相反的偏移量进行替换,从而得到原始的明文。
凯撒密码的优点是简单易懂,计算量小,适用于对简单信息进行加密。
然而,它也有很大的弱点,容易受到频率分析等攻击方法的破解。
因此,在实际应用中,凯撒密码往往需要与其他更复杂的密码算法结合使用,以增加安全性。
与凯撒密码相比,仿射变换密码是一种更加复杂的加密算法。
它基于数论的概念,在数学上定义了一种映射关系,通过对明文中的每个字母进行线性变换来得到密文。
这个线性变换包括两个参数,一个是乘法参数,另一个是加法参数。
乘法参数用于缩放字母的值,加法参数用于平移字母的位置。
解密过程则是对密文中的每个字母应用逆向的线性变换,从而还原出原始的明文。
仿射变换密码相对于凯撒密码而言,具有更高的安全性。
它的加密过程是一个一对一映射,不容易受到统计分析等攻击方法的破解。
同时,仿射变换密码也可以通过调整参数的取值,实现不同程度的加密强度。
总结来说,凯撒密码和仿射变换密码是两种经典的加密算法。
凯撒密码简单易懂但安全性较低,而仿射变换密码相对更复杂且安全性更高。
在实际应用中,我们可以根据需求和安全要求选择适合的加密算法,以保护敏感信息的安全。
凯撒加密的原理
凯撒加密的原理宝子!今天咱们来唠唠一个超有趣的加密玩意儿——凯撒加密。
你想啊,在古代,那时候可没有咱们现在这么高科技的加密手段。
但是呢,人们也有自己的小智慧,凯撒加密就这么诞生啦。
简单来说呢,凯撒加密就像是给你的信息玩了一个超级简单的换装游戏。
比如说,你有一个字母“a”,按照凯撒加密的规则,它可能就会变成另外一个字母,像“d”之类的。
这是怎么做到的呢?其实就是把字母按照一定的顺序往后推啦。
就好像字母们在排着队,然后每个字母都向后挪几个位置。
咱们详细说说哈。
字母表不是有26个字母嘛,凯撒加密呢,就规定好了一个偏移量。
比如说偏移量是3,那“a”就会变成“d”,因为“a”往后数3个字母就是“d”啦。
“b”呢就会变成“e”,“c”就变成“f”,以此类推哦。
要是到了“x”,按照偏移量3的话,“x”就会变成“a”,“y”变成“b”,“z”变成“c”。
这就像是字母们在一个环形的跑道上跑步,跑到头了就又从开头继续跑。
你可能会想,这有啥用呢?用处可大啦!想象一下,古代的将军们要传递军事机密。
要是直接写在信上,万一被敌人截获了,那可就惨啦。
但是用了凯撒加密,就算敌人拿到了信,看到的也是一堆看起来莫名其妙的字母组合。
比如说,本来要传递“attack at dawn”(黎明进攻),经过加密后可能就变成了“dwwdfn dw gdzq”。
敌人看了肯定是一头雾水,完全不知道啥意思。
不过呢,这种加密也有它的小弱点。
要是有人知道了这个偏移量,那解密就超级简单啦。
就像你知道了密码锁的密码,一下子就能打开一样。
所以在当时,这个偏移量可能就是一个超级机密,只有自己人知道。
而且啊,这种加密对于现在的我们来说可能有点小儿科了。
但是在那个时候,这可是相当厉害的发明呢。
它就像是一个小小的魔法,把信息隐藏起来,只有懂这个魔法规则的人才能把信息还原出来。
你要是和朋友玩个小秘密游戏,也可以用凯撒加密哦。
比如说,你想给朋友传个小纸条,上面写着“今天下午三点一起去吃冰淇淋”,然后用凯撒加密一下,朋友收到后按照你们约定好的偏移量解密,就像是在玩一个超级有趣的猜谜游戏。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【实验目的】1. 简单加密方法的原理2. 凯撒密码的原理及程序的编写【实验设备与环境】(1)计算机(2)TC【实验步骤(内容)】凯撒密码就是单表代替密码,它的每一个明文字符都由其右边第3个(模26)字符代替(A由D代替,B由E代替,W由Z代替,X由A代替,Y由B代替,Z由C代替)。
(1)加法变换c≡ (m + k) mod 26其中m是明文对应的数据,c是与明文对应的密文数据,k是加密用的参数,叫密钥。
比如:data security对应数据序列4,1,20,1,19,5,3,21,18,9,20,25,当k=5时,得密文序列9,6,25,6,24,10,8,0,23,14,25,4。
(2)乘同余码:移位或等间隔抽取码,明密文之间没有一一对应关系。
(容易产生多义性)。
变换按照同余乘法进行:加密变换:C=P⨯k (mod 26),解密变换:P=C÷k (mod 26) ,密钥:k源程序:#include<stdio.h>#include<conio.h>char sumjiami(char ch,int n){n=n%10;while(ch>='A'&&ch<='Z'){return ('A'+(ch-'A'+n)%26);}while(ch>='a'&&ch<='z'){return ('a'+(ch-'a'+n)%26); }while(ch>='0'&&ch<='9'){return ('0'+(ch-'0'+n)%10); }return ch;}char sumjiemi(char ch,int n) {static int k;k=n%10;while(ch>='A'&&ch<='Z'){ n=26-k;return ('A'+(ch-'A'+n)%26); }while(ch>='a'&&ch<='z'){n=26-k;return ('a'+(ch-'a'+n)%26); }while(ch>='0'&&ch<='9'){ n=10-k;return ('0'+(ch-'0'+n)%10); }return ch;char muljiami(char ch,int n) {if(n%2==0) n=n%10+1;else n=n%10;if(n%5==0) n=n+2;else n=n;while(ch>='A'&&ch<='Z'){return ('A'+((ch-'A')*n)%26); }while(ch>='a'&&ch<='z'){return ('a'+((ch-'a')*n)%26); }while(ch>='0'&&ch<='9'){return ('0'+((ch-'0')*n)%10); }return ch;}char muljiemi(char ch,int n) {int i;int k,h;if(n%2==0) n=n%10+1;else n=n%10;if(n%5==0) n=n+2;else n=n;while(ch>='A'&&ch<='Z')for(i=0;i<=n;i++){k=((ch-'A')+i*26)%n; if(k==0)h=((ch-'A')+i*26)/n; if(h>=0&&h<=26)return ('A'+h);}}while(ch>='a'&&ch<='z') {for(i=0;i<=n;i++){k=((ch-'a')+i*26)%n; if(k==0)h=((ch-'a')+i*26)/n; if(h>=0&&h<=26)return ('a'+h);}}while(ch>='0'&&ch<='9') {for(i=0;i<=n;i++){k=((ch-'0')+i*10)%n; if(k==0)h=((ch-'0')+i*10)/n;return ('0'+h);}}return ch;}void menu(){printf("\n========================================================="); printf("\n1.sumjiami the file");printf("\n2.muljiami the file");printf("\n3.sumjiemi the file");printf("\n4.muljiemi the file");printf("\n5.Quit\n");printf("=========================================================\n"); printf("Please select a item:");return;}void main(){int i,n;char ch0,ch1;FILE *in,*out;char infile[20],outfile[20];sleep(3);menu();ch0=getch();{if(ch0=='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("%d",&n);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);}while(!feof(in)){fputc(sumjiami(fgetc(in),n),out);}fclose(in);fclose(out);sleep(1);}if(ch0=='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("%d",&n);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);}while(!feof(in))fputc(muljiami(fgetc(in),n),out);}printf("\nmuljiami is over!\n");fclose(in);fclose(out);sleep(1);}if(ch0=='3'){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("%d",&n);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();}while(!feof(in)){fputc(sumjiemi(fgetc(in),n),out);}printf("\nsumjiemi is over!\n");fclose(in);fclose(out);sleep(1);}if(ch0=='4'){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("%d",&n);printf("Please input the outfile:");scanf("%s",outfile);if((out=fopen(outfile,"w"))==NULL){printf("Can not open the outfile!\n");fclose(in);getch();exit(0);}while(!feof(in)){fputc(muljiemi(fgetc(in),n),out);}printf("\nmuljiemi is over!\n");fclose(in);fclose(out);sleep(1);}menu();ch0=getch();}clrscr();printf("\nGood Bye!\n");sleep(3);}运行:在C盘建立1.txt和2.txt,在文本1中输入以下信息:大写:ABCDEFGHIJKLMNOPKRSTUVWXYZ;小写:abcdefghijklmnopkrstuvwxyz;数字:0123456789.1、加法(sum)加密选择1加密运行结果:大写:FGHIJKLMNOPQRSTUPWXYZABCDE; 小写:fghijklmnopqrstupwxyzabcde;数字:5678901234.2、加法(sum)解密选择3加法解密运行结果:大写:ABCDEFGHIJKLMNOPKRSTUVWXYZ; 小写:abcdefghijklmnopkrstuvwxyz;数字:0123456789.3、乘法(mul)加密选择2乘法加密运行结果:大写:AHOVCJQXELSZGNUBSPWDKRYFMT; 小写:ahovcjqxelszgnubspwdkryfmt;数字:0741852963.4、乘法解密选择4乘法解密运行结果:大写:ABCDEFGHIJKLMNOPKRSTUVWXYZ;小写:abcdefghijklmnopkrstuvwxyz;数字:0123456789.5选择5退出。