实验9 加密与解密实验
加密与解密教科版

解析:采样频率44.1kHz,量化位数16位,意味着每秒采集数据44.1k个,每个数据占2字节,(量化位
数是16位,按照计算机术语来看,1位指是一个二进制位,就是1bit,8bit是一字节,那么16位就 是2字节)这是一个声道数据,双声道再乘以2,最终结果再乘以60秒,就是 44.1×1000×2×2×60=10584000字节, 1MB=1024×1024=1048576字节,所以一分钟存放容量为10584000/1048576=10.09MB,约为 10.1MB。
加密与解密教科版
第23页
总结
任意R进制数( R为大于等于2且不等于10正整数,下同)转换为十
进制数时,都可采取 按权展开求和方法 法。十进制数转换为R进制数时,
都可采取
除R取余法 方法。
一段时长为1分钟,采样频率为44.1kHz,量化位数为16位,双声 道立体声无压缩音频(如基于PCM编码wav格式),占用存放空间是 MB (准确1到0.10.1 )。
for i in range(len(c)):
#获取明文内容每一个字符,并加密
if 'a'<=c[i]<='w' or 'A'<=c[i]<='W': #判断a~w或A~W间字母
b=b+chr(ord(c[i])+3)
#生成密文
elif 'x'<=c[i]<='z' or 'X'<=c[i]<='Z': #判断x~z或X~Z间字母
加密与解密教科版
详细试验结果会依据计算机性能不 一样而有所不一样。
文件加密与解密实验报告

HUNAN UNIVERSITY程序设计训练——文件加密与解密报告学生姓名X X X学生学号20110102308专业班级建环308指导老师何英2012-07-01至 2012-07-13一、程序设计目的和要求 (3)二、程序设计内容 (4)1、总体设计 (4)1.1主控选择模块 (4)1.2加密模块 (4)1.3解密模块 (4)2、流程图 (5)三模块详细说明 (6)四、测试数据及其结果 (7)五、课程设计总结 (8)六、附录 (9)附录1:参考文献 (9)附录2:程序源代码 (9)一、程序设计目的和要求1、目的:为保证个人数据资料不被他人窃取使用,保护个人隐私及个人文件。
设计一个基于c语言的文本文件加密及解密软件,可以方便对文本文件的加密与解密。
本设计实现了文本文件的解密及解密,运行软件之后只需输入任意一个文本文件的文件名及后缀名即可对该文本文件进行加密或解密操作。
本设计的加密与解密系统,使用了面向各类文件的方法,运用Microsoft Visual C++ 6.0实现具有加密、解密、帮助信息、读取文本文件、显示结果、退出等功能的文件加密与解密系统。
2、要求:(1)从键盘输入要进行加密的一行字符串或者需要加密的文件名。
(2)显示菜单:(3)选择菜单,进行相应的操作。
加密方法是设置一加密字符串以及对文件的哪些部分进行加密;加密是将原始文件加密并保存到文件中;解密是将加了密的文件还原并保存到文件中,同时应比较与原始文件的一致性;3、其他要求(1)变量、函数命名符合规范。
(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
二、程序设计内容1、总体设计本程序主要是对已知文件通过修改文件内容以达到文件加密的目的。
整个系统由以下几大功能模块组成。
1.1主控选择模块此模块是主程序操作界面,供用户进行选择。
用户可选择执行加密或解密操作。
加密技术及密码破解实验报告

第九章、实验报告实验一、设置Windows启动密码一、实验目的:利用Windows启动密码保存重要文件。
二、实验步骤:1、在Windows XP系统中选择开始——运行,在打开输入框中“syskey.exe”,点击确定,打开“保证Windows XP账户数据库的安全”对话框。
2、单击【更新】,打开【启动密码】对话框,然后输入密码,在【确认】文本框中再次输入密码,单击【确定】实验二、为word文档加密解密一、实验目的:保护数据的安全二、实验步骤:1、打开一个需要加密的文档,选择【工具】——【选项】——【安全性】然后输入想要设置打开文件时所需的密码2、单击【高级(A)】打开加密类型对话框,选中【加密文档属性】复选框,单击【确定】。
3、打开文件的【确认密码】对话框,输入打开文件时需要的密码,单击【确定】,随即打开【确认密码】对话框,输入密码。
4、保存文件后,重新打开Word文档,打开【密码】,输入打开文件所需的密码,单击【确定】输入修改的密码,单击【确定】破解word密码(1)安装Advanced Office Password Recovery软件,安装完成后打开需要破解的word 文档,进行暴力破解,结果如图所示:实验三、使用WinRAR加密解密文件一.实验目的:加密文件,保证文件的安全性。
二.实验步骤:1、在需要加密的文件夹上右击,选中【添加到压缩文件】打开【压缩文件名和参数】2、选中【压缩文件格式】组合框中的【RAR】并在【压缩选项】中选中【压缩后删除源文件】然后切换到【高级】,输入密码,确认密码。
3、关闭对话框,单击确定,压缩完成后,双击压缩文件,系统打开【输入密码对话框】破解WinRAR加密的文件(1)安装Advanced RAR Password Recovery软件,打开WinRAR加密文件,进行暴力破解,获得密码。
结果如图:实验四:使用文件夹加密精灵加密文件夹一、实验目的:对文件进行加密,保证其安全性二、实验步骤:1、安装文件夹加密精灵软件,设置登录密码。
java课程设计加密与解密实验报告

java课程设计加密与解密实验报告尊敬的老师:我将向您汇报我的Java课程设计——加密与解密实验报告。
本次实验旨在通过Java程序设计实现一些传统加密算法的加密与解密功能,并进行简单的性能分析。
以下是我的实验报告:一、实验目的通过Java程序设计实现传统加密算法的加密与解密功能,了解加密算法的基础原理,并进行简单的性能分析。
二、实验内容本次实验的主要内容包括:1. 实现Caesar加密算法、Playfair加密算法和Vigenere加密算法的加密与解密功能。
2. 编写能够对文字文件进行加密与解密的Java程序。
3. 对比不同算法的加密与解密性能,进行简单的性能分析。
三、实验步骤1. Caesar加密算法Caesar加密算法是一种简单的字母替换加密方式,通过移动字母表中的字母来生成密文。
例如,如果移动三个字母,则"A"变成"D","B"变成"E",以此类推。
加密和解密使用相同的密钥,在本实验中为整数。
实现步骤如下:① 定义CaesarCipher类,此类中包含了加密与解密方法。
② 加密方法接收一个字符串和密钥,通过对字符串中的每个字母进行移动,生成密文。
③ 解密方法接收一个密文和密钥,通过对密文中的每个字母进行相反的移动,还原出明文。
2. Playfair加密算法Playfair加密算法是一种算法复杂度较高的加密方式,利用了一个5x5的矩阵来进行加密。
实现步骤如下:① 定义PlayfairCipher类,此类中包含了加密与解密方法。
② 加密方法接收一个字符串和密钥,将明文分组并替换成加密后的密文。
③ 解密方法接收一个密文和密钥,将密文分组并替换成还原出的明文。
3. Vigenere加密算法Vigenere加密算法是一种基于凯撒密码的加密算法,使用一个关键词来对明文进行加密。
实现步骤如下:① 定义VigenereCipher类,此类中包含了加密与解密方法。
加密解密实验报告

竭诚为您提供优质文档/双击可除加密解密实验报告篇一:Aes加密解密实验报告信息安全工程课程实验报告Aes加密解密的实现课程名称:信息安全工程学生姓名:学生学号:专业班级:任课教师:黄小菲3112041006系统工程2038班蔡忠闽20XX年11月22日目录1.背景................................................. ................................................... . (1)1.1Rijndael密码的设计标准:............................................... .................................11.2设计思想................................................. ................................................... .......12.系统设计................................................. ................................................... . (2)2.1系统主要目标................................................. ................................................... ..22.2功能模块与系统结构................................................. . (2)2.2.1字节替换subbyte............................................ ...........................................22.2.2行移位shiftRow........................................... ..............................................22.2.3列混合mixcolumn.......................................... ..........................................32.2.4轮密钥加AddRoundKey........................................ .....................................42.2.5逆字节替换................................................. ..............................................42.2. 6逆行移位InvshiftRow........................................ .. (4)2.2.7逆列混淆................................................. .. (4)3加密模式................................................. ................................................... (5)3.1电子密码本ecb模式................................................. ........................................53.2加密块链模式cbc模......................................64系统功能程序设计................................................. ................................................... . (8)4.1基本加密部分................................................. ................................................... ..84.1.1字节替换................................................. ...................................................84.1.2行移位................................................. ................................................... ...84.1.3列混合................................................. ................................................... (9)4.1.4轮密钥加.................................................94.1.5密钥扩展................................................. . (10)4.1.6逆字节替换................................................. ..............................................114.1 .7逆行移位................................................. .. (1)14.1.8逆列混合................................................. . (12)4.1.9加密................................................. ................................................... .....124.1.10解密................................................. ................................................... (13)5实验结果................................................. (14)5.1需要加密文件................................................. .. (1)45.2实验加密解密结果................................................. ...........................................156参考资料................................................. ................................................... . (16)1.背景Aes,密码学中的高级加密标准(Advancedencryptionstandard,Aes),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。
加密解密程序实验报告

程序设计实践加密解密程序实验报告课题概述1.1课题目标和主要内容:利用MFC类或者win32编写windows程序,实现加密解密的功能。
1.2系统的主要功能:1.实现用户界面友好的操作。
2.具有对称编码体制,可以实现:i.凯撒密码:能够自定义密钥,自由输入明文,进行加密、解密,在对话框中返回加密和解密后的内容。
ii.置换密码:能够自定义密钥,自由输入明文,经矩阵变换进行加密、解密,在对话框中返回加密和解密后的内容iii.对称加密DES:用MFC调用WIN32编写的程序,在用户友好界面操作的同时显示程序加密,解密结果。
3.具有非对称编码体制:i. RSA加密解密:随机产生p,q,经检验是否互质,若不互质接着产生两个随机数,直到二者互质为止。
自动生成p,q,N及加密解密的密钥,可以自由输入明文,返回加密、解密的内容。
ii. MD5消息摘要计算:用MFC调用WIN32编写的程序,在用户友好界面操作的同时显示程序的加密结果。
4.信息隐藏技术:用LSB在图片(bmp格式,任意位置的图片)中写入信息,读取信息并显示出来,可以擦除信息。
可以自定义密钥。
5. AES加密解密:用MFC调用WIN32编写的程序,在用户友好界面操作的同时显示程序加密,解密结果。
6. 以上的所有对文字加密解密的方法(除LSB以外其余所有方法),都可以用于文件加密,解密,并能够及时保存加密,解密的信息到一个TXT文档,可以存在用户想存放的地方。
7.更多:链接了一个可加密解密,功能更为齐全的网站,若是上述方法不能满足用户需求,可以在程序运行的窗口中点击相应按钮,在联网的条件下进行在线加密解密。
一、系统设计2.1系统总体框架:2.2主要的层次逻辑为:1.界面窗口:改善设计,修正效果图:2.将书上的C++语言改用MFC适应的进行编程,实现相应功能:凯撒加解密3.或者用系统函数调用WIN32编好的程序:4.进行文件操作,加密解密后保存文件。
6.调用函数实现网页链接:2.3设计思想:(1)新建一个基于单文档的MFC应用程序,工程名称为secret。
文件的移位加密解密实验报告

文件的移位加密与解密一目的将某一已知文件的内容(仅限于英文字母)以字符形式读出,根据密钥(用户从键盘输入)将对应字符进行移位操作即可,解密时移动相反,使文件恢复原来的字母。
二需求分析将某一已知文件的内容(仅限于英文字母)以字符形式读出,根据密钥(用户从键盘输入)将对应字符进行移位操作即可,解密时移动相反。
加密:用户选择功能(运行后键盘输入1进行选择),从键盘输入一个任意整数密钥,然后对已知文件“abc.txt”进行加密。
加密后屏幕显示加密后文件内容并且文件内容改变。
成为加密文件。
解密:通过选择功能(运行后键盘输入2进行选择)对加密后的文件进行解密,输入密钥后能显示出解密后文件内容并且文件变为解密的文件。
通过加密解密可以在文件内容与乱码之间来回转换,使文件内容更安全。
在D盘中建立abc.txt文件并在其中输入字符串abcdef,运行程序,选择1对文件进行加密,输入密钥1,文件abc.txt会变为bcdefg。
三概要设计本程序有一个模块:main(){定义整数选择,密钥;定义字符型数组保存源文件的内容,保存改变后文件的内容;定义i=0,用来初始化数组;定义文件指针1,2 第一个只读打开文件,第二个只写打开文件把更改后的文件放入已知文件中。
没有其他函数。
}四详细设计主程序流程图定义最大数组,以及所使用的函数的头文件名#include<stdio.h>#define M 200#include<stdlib.h>文件指针,以及全局变量int password,choose;char c,yuan[M];int i=0;FILE *fp,*fp1;对文件的打开,并对所需功能进行选择。
fp=fopen("D:\\abc.txt","r");if(fp==NULL)printf("the document can't be open!\n");printf("please choose the function\n");printf("1:encrypt 2:decript \n");scanf("%d",&choose);if(choose!=1&&choose!=2)printf("please input a right number!\n");system("pause");对文件进行加密或者解密处理,并把处理结果输出在屏幕上。
加解密实验报告

一、实验模块1. 实验名称:加解密实验2. 实验目的:掌握基本的加密和解密方法,理解加密算法的工作原理,并能够使用C语言实现加解密功能。
3. 实验环境:Windows操作系统,C语言编译器(如Visual Studio)二、实验标题加解密实验:基于RSA算法和DES算法的加密与解密三、实验内容概述本次实验主要涉及两种加密算法:RSA算法和DES算法。
通过学习这两种算法的原理,使用C语言实现加解密功能,并验证加密和解密过程是否正确。
四、实验日期、实验操作者实验日期:2023年10月15日实验操作者:张三五、实验目的1. 理解RSA算法和DES算法的原理。
2. 使用C语言实现RSA算法和DES算法的加解密功能。
3. 验证加密和解密过程是否正确。
六、实验步骤1. RSA算法原理及实现(1)生成密钥对:使用C语言实现RSA算法的密钥生成过程,生成公钥和私钥。
(2)加密过程:使用公钥对明文进行加密,得到密文。
(3)解密过程:使用私钥对密文进行解密,得到明文。
2. DES算法原理及实现(1)密钥生成:生成DES算法的密钥,通常为56位。
(2)加密过程:使用DES算法对明文进行加密,得到密文。
(3)解密过程:使用DES算法对密文进行解密,得到明文。
3. 验证加密和解密过程(1)选择一段明文,分别使用RSA算法和DES算法进行加密,记录密文。
(2)使用相应的私钥或密钥对密文进行解密,得到明文。
(3)比较加密后的密文和解密后的明文,验证加密和解密过程是否正确。
七、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 编程语言:C语言八、实验过程1. RSA算法实验(1)生成密钥对```c#include <stdio.h>#include <stdlib.h>// RSA算法生成密钥对void generateKeys(int n, int e, int d, int p, int q) {// 初始化公钥和私钥p = 61;q = 53;n = p q;e = 17;// 计算私钥d = 2753;}int main() {int p, q, n, e, d;generateKeys(&p, &e, &d, &q, &n);printf("Public Key: (%d, %d)\n", n, e); printf("Private Key: (%d, %d)\n", n, d); return 0;}```(2)加密过程```c#include <stdio.h>#include <math.h>// RSA算法加密int encrypt(int m, int n, int e) {int c = pow(m, e) % n;return c;}int main() {int m, n, e, c;printf("Enter the message: ");scanf("%d", &m);printf("Public Key: (%d, %d)\n", n, e);c = encrypt(m, n, e);printf("Encrypted Message: %d\n", c);return 0;}```(3)解密过程```c// RSA算法解密int decrypt(int c, int n, int d) {int m = pow(c, d) % n;return m;}int main() {int c, n, d, m;printf("Enter the encrypted message: "); scanf("%d", &c);printf("Private Key: (%d, %d)\n", n, d); m = decrypt(c, n, d);printf("Decrypted Message: %d\n", m);return 0;}```2. DES算法实验(1)密钥生成```c#include <stdio.h>// DES算法密钥生成void generateDESKey(char key, char desKey) {// 将密钥转换为DES密钥for (int i = 0; i < 56; i++) {desKey[i] = key[i / 8] & (1 << (7 - (i % 8))); }}int main() {char key[8];char desKey[56];printf("Enter the DES key: ");scanf("%s", key);generateDESKey(key, desKey);printf("DES Key: ");for (int i = 0; i < 56; i++) {printf("%02x", desKey[i]);}printf("\n");return 0;}```(2)加密过程```c#include <stdio.h>// DES算法加密void encryptDES(char input, char key, char output) { // 使用DES算法对输入数据进行加密// 此处省略加密算法的具体实现}int main() {char input[64];char key[8];char output[64];printf("Enter the message: ");scanf("%s", input);printf("DES Key: ");scanf("%s", key);encryptDES(input, key, output);printf("Encrypted Message: %s\n", output);return 0;}```(3)解密过程```c#include <stdio.h>// DES算法解密void decryptDES(char input, char key, char output) { // 使用DES算法对输入数据进行解密// 此处省略解密算法的具体实现}int main() {char input[64];char key[8];char output[64];printf("Enter the encrypted message: ");scanf("%s", input);printf("DES Key: ");scanf("%s", key);decryptDES(input, key, output);printf("Decrypted Message: %s\n", output);return 0;}```3. 验证加密和解密过程(1)RSA算法验证```c#include <stdio.h>#include <math.h>// RSA算法加密int encrypt(int m, int n, int e) {int c = pow(m, e) % n;return c;}// RSA算法解密int decrypt(int c, int n, int d) {int m = pow(c, d) % n;return m;}int main() {int m, n, e, d, c, m2;printf("Enter the message: ");scanf("%d", &m);printf("Public Key: (%d, %d)\n", n, e);c = encrypt(m, n, e);printf("Encrypted Message: %d\n", c);printf("Enter the Private Key: (%d, %d)\n", n, d); m2 = decrypt(c, n, d);printf("Decrypted Message: %d\n", m2);if (m == m2) {printf("Encryption and Decryption are successful!\n"); } else {printf("Encryption and Decryption failed!\n");}return 0;}```(2)DES算法验证```c#include <stdio.h>// DES算法加密void encryptDES(char input, char key, char output) {// 使用DES算法对输入数据进行加密// 此处省略加密算法的具体实现}// DES算法解密void decryptDES(char input, char key, char output) {// 使用DES算法对输入数据进行解密// 此处省略解密算法的具体实现}int main() {char input[64];char key[8];char output[64];printf("Enter the message: ");scanf("%s", input);printf("DES Key: ");scanf("%s", key);encryptDES(input, key, output);printf("Encrypted Message: %s\n", output);decryptDES(output, key, input);printf("Decrypted Message: %s\n", input);if (strcmp(input, "Hello") == 0) {printf("Encryption and Decryption are successful!\n");} else {printf("Encryption and Decryption failed!\n");}return 0;}```九、实验结论通过本次实验,我们掌握了RSA算法和DES算法的原理,并使用C语言实现了加解密功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
源代码:
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#define MAXSIZE 100
int main()
{
char str[MAXSIZE];
int i;
int offset;
int n;
printf("请输入要加密的字符串:");
str[i] += offset;
else
str[i] += offset - 26;
}
printf("加密后的字符串是:");
puts(str);
return 0;
}
2.解密程序运行结果:
源代码:
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#define MAXSIZE 100
int main()
{
char str[MAXSIZE];
int i;
int offset;
int n;
printf("请输入要解密的字符串:");
gets(str);
printf("请输入要偏移量:"); //若将a变为b,则偏移量为1,以此类推,偏移量在1-25之间
str[i] -= offset;
else
str[i] -= offset + 26;
}
printf("解密后的字符串是:");
puts(str);
return 0;
}
2、DES加密解密程序实现,编译课本例9-1,即DES加密算法。执行该程序,要求将自己的姓名拼音(全名)作为待加密的明文进行加密,程序显示加密后的密文以及解密后的明文。请截图显示你的程序运行结果。
6、在Windows 2003虚拟机中任意选择一个文本文件进行PGP加密,截图显示你的加密过程的图片。
7、打开这个被PGP加密的文本文件,截图显示你的打开过程。
8、使用PGP加密邮件。PGP的主要功能是加密邮件,安装完成后,PGP自动与Outlook关联,请选择一名同伴,互相向对方写一封邮件,并利用PGP对该邮件进行加密和签名。
4、启动Windows 2003虚拟机,网络方式选择NAT,在该虚拟机中安装PGP软件,截图显示你的安装过程。
5、使用PGP产生密钥。在安装完PGP后,系统要求重新启动,重新启动成功后请设置PGP会自动产生密钥对,此时需要你输入你的密码并确认,请截图显示你的密钥对的生成图片。
在输入密码时请以你的姓名全名为密码,并在输入密码时注意要求显示输入的密码。
2、了解使用程序实现DES和RSA加解密。
3、学会使用PGP加密软件加密文件与邮件。
二、实验内容
1、编写实现Caeser密码加密、解密
2、了解程序实现DES和RSA加密、解密
3、使用PGP加密文件
4、使用PGP加密邮件
三、实验原理
请简介一下PGP加密的基本原理。
四、实验步骤
1、编写一个程序能够实现Caeser加密与解密。假定Caeser密码的偏移量为3,本程序只对小写字符进行加密,要求用户从键盘输入你的姓名拼音(假设长度小于100),将其进行加密后显示出来,然后再显示出原文。请截图显示你的程序运行结果,并附上源代码。
scanf("%d%*c", &offset);
n = strlen(str);
for (i = 0; i < n; i++)
{
if ('a' <= str[i] && str[i] <= 'z' + offset || 'A' <= str[i] && str[i] <= 'Z' - offset)
新疆师范大学
计算机网络安全(本科)
实验报告
实验名称:实验9加密与解密实验
院 系:计算机科学技术学院
班 级:2011-01班
学生姓名:木拉提·巴力
学 号:20111601141025
合作者姓名:米热古丽·塔力浦
指导教师:赵新元老师
教师评阅结果:
教师评语:
实验日期2014年12月28日
一、实验目的
1、掌握Caeser密码原理,理解Caeser密码加密、解密过程。
3、RSA加密算法实现。请将课本提供的RSA加密算法9-2在Virtual C++中编译,执行该加密程序。
(1)产生RSA密钥对,并将产生的密钥对与公钥加密一个文本文件,截图显示你的加密过程。
(3)利用私钥解密已被加密的文本文件,截图显示你的解密过程及文件的内容。
(1)截图显示你的邮件全文及加密的图片。
(2)接收你的同伴发给你的加密邮件,直接显示邮件内容。截图。
(3)利用同伴的密钥解密邮件,截图显示邮件全文。
答:由于Outlook软件问题第二步和第三步做不出来了。
五、实验总结
本次实验前半部分做的比较顺利,但是最后一步由于Outlook软件问题得不到自己想要的结果。但是通过这次实验学会了利用pgp软件加密和解密的基本操作。
gets(str);
printf("请输入要偏移量:"); //若将a变为b,则偏移量为1,以此类推,偏移量在1-25之间
scanf("%d%*c", &offset);
n = strlen(str);
for (i = 0; i < n; i++)
{
if ('a' <= str[i] && str[i] <= 'z' - offset || 'A' <= str[i] && str[i] <= 'Z' - offset)