文件的移位加密解密实验报告

合集下载

文件加密操作实验报告

文件加密操作实验报告

文件加密操作实验报告文件加密操作实验报告一、引言文件加密是一种常见的数据安全保护手段,通过将文件内容转换为不可读的形式,以防止未经授权的访问和使用。

本实验旨在探究不同的文件加密操作方法,并评估其安全性和效果。

二、实验目的1. 了解常见的文件加密算法和技术;2. 掌握文件加密操作的基本步骤和流程;3. 比较不同加密算法对文件加密效果和性能的影响;4. 分析不同加密算法的优缺点,并提出改进方案。

三、实验方法1. 实验环境:使用计算机及相关软件工具进行实验;2. 实验材料:选择多个不同类型的文件作为实验对象;3. 实验步骤:3.1 选择合适的加密算法:对称加密算法(如DES、AES)、非对称加密算法(如RSA)或混合加密算法;3.2 生成并保存秘钥:根据选定的算法生成相应长度的秘钥,并保存在安全位置;3.3 加密文件:使用选定的算法和秘钥对待加密文件进行处理,生成相应的加密文本或二进制数据;3.4 解密文件:使用相同的算法和秘钥对加密文件进行解密,恢复原始文件;3.5 分析结果:比较加密前后文件的差异,评估加密算法的效果和性能。

四、实验结果1. 对称加密算法:4.1 DES加密:4.1.1 步骤:选择一个8字节的秘钥,使用DES算法对待加密文件进行处理;4.1.2 结果:生成一个与原始文件大小相同的加密文件;4.1.3 分析:DES算法具有较高的安全性和可靠性,但速度较慢; 4.2 AES加密:4.2.1 步骤:选择一个16字节、24字节或32字节的秘钥,使用AES算法对待加密文件进行处理;4.2.2 结果:生成一个与原始文件大小相同的加密文件;4.2.3 分析:AES算法在安全性和速度方面都表现优秀,是目前最常用的对称加密算法之一。

2. 非对称加密算法:4.3 RSA加密:4.3.1 步骤:生成公钥和私钥对,并使用公钥对待加密文件进行处理;4.3.2 结果:生成一个较大且与原始文件大小不同的加密文件;4.3.3 分析:RSA算法具有较高的安全性,但加密和解密速度较慢,适用于对小文件或敏感信息进行加密。

文件加密与解密实验报告

文件加密与解密实验报告

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主控选择模块此模块是主程序操作界面,供用户进行选择。

用户可选择执行加密或解密操作。

文件加密的实验报告

文件加密的实验报告

一、实验目的1. 理解文件加密的基本原理和重要性。

2. 掌握使用加密工具对文件进行加密和解密的方法。

3. 提高对数据安全性的认识和实际操作能力。

二、实验环境1. 操作系统:Windows 102. 加密工具:TrueCrypt3. 实验材料:待加密文件(如文档、图片等)三、实验内容1. 理论学习(1)文件加密的基本原理:文件加密是通过将原始文件内容进行转换,使得只有拥有正确密钥的人才能解密还原原始文件的过程。

(2)加密算法:常见的加密算法有AES、DES、RSA等,其中AES加密算法因其安全性高、速度快而被广泛应用。

2. 实验步骤(1)准备实验材料:选择一个待加密的文件,如Word文档、图片等。

(2)安装TrueCrypt软件:从官方网站下载TrueCrypt软件,安装并运行。

(3)创建加密文件容器:在TrueCrypt软件中,点击“创建容器”,选择“标准TrueCrypt容器”作为加密方式,设置容器大小和加密算法。

(4)将文件放入加密容器:将待加密的文件拖拽到加密容器中,此时文件将被自动加密。

(5)保存加密文件:将加密后的文件保存到安全位置。

(6)解密文件:在TrueCrypt软件中,选择加密文件容器,输入密码,点击“打开容器”,即可解密文件。

3. 实验结果(1)加密文件:实验成功将待加密文件加密,并生成了加密文件容器。

(2)解密文件:使用正确密码成功解密加密文件,验证了加密和解密过程的有效性。

四、实验分析1. 文件加密的重要性(1)保护隐私:加密文件可以有效防止他人未经授权访问和篡改文件内容,保护个人隐私。

(2)数据安全:在数据传输过程中,加密文件可以防止数据被截获和篡改,提高数据安全性。

(3)合规要求:某些行业或组织对数据安全有严格要求,加密文件可以帮助企业或个人满足合规要求。

2. TrueCrypt加密工具的特点(1)免费:TrueCrypt是一款免费的开源加密软件,用户可以免费下载和使用。

加密解密实验报告

加密解密实验报告

竭诚为您提供优质文档/双击可除加密解密实验报告篇一: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加密法,是美国联邦政府采用的一种区块加密标准。

C++课程设计报告 文件移位加密与解密 学生信息管理系统设计

C++课程设计报告 文件移位加密与解密  学生信息管理系统设计

C语言程序设计课程报告姓名:学号:所在院系:所在班级:指导老师:完成课题:文件移位加密与解密学生信息管理系统设计完成时间:目录第一题文件位移加密与解密 (3)一、课程设计目的及要求 (3)1.1设计目的 (3)1.2设计要求 (3)二、课程设计内容 (3)三、系统概述 (4)3.1功能简介 (4)3.2设计思路 (4)四、程序功能的设计与分析 (4)4.1总体设计 (4)4.2密钥key的检查 (4)4.3加密模块 (4)4.4解密模块 (5)4.5程序框图 (6)五、调试及运行结果 (7)六、总结 (9)6.1遇到的问题及解决方法 (9)6.2收获及体会 (9)参考文献 (9)附录:程序代码 (10)第二题学生信息管理系统设计 (13)一、课程设计目的及要求 (13)1.1设计目的 (13)1.2设计要求 (13)二、课程设计内容 (14)三、系统概述 (14)3.1功能简介 (14)3.2详细功能 (15)四、系统详细设计 (16)五、程序框图 (17)六、程序输出结果 (20)七、总结 (23)参考文献 (23)附录:程序代码 (24)第一题文件位移加密与解密一、课程设计目的及要求1.1设计目的(1)提高程序设计和分析的能力。

(2)深入了解C++程序设计的知识与技巧。

(3)进一步掌握C++程序设计的思想。

(4)初步了解程序加密与解密的思想。

1.2设计要求(1)完整的理解课程设计任务的要求。

(2)用C++语言实现系统。

(3)函数功能划分合理(结构化程序设计)。

(4)设计的程序结构完整、简明、可读性强。

(5)界面友好(良好的人机交互),注释合理。

(6)设计的程序调试成功,能稳定的运行。

二、课程设计内容文件移位加密与解密1)文件加密;2)文件解密。

备注:将某一已知文件的内容(仅限于英文字母)以字符形式读出,根据密钥(用户从键盘输入)将对应字符进行移位操作即可,解密时移动相反。

例如:加密:设原文为abcdef,密钥为5,则有abcdef每个字母按字母表向后移动5们(注:z后接a)可得到密文(乱码)fghijkl;对该文件解密:文件内容为fghijk1,密钥为5,则有fghijk1每个字母向前移动5位(注a后接z),可得到原文abcdef。

文件的移位加密解密实验报告

文件的移位加密解密实验报告

文件的移位加密与解密一目的将某一已知文件的内容(仅限于英文字母)以字符形式读出,根据密钥(用户从键盘输入)将对应字符进行移位操作即可,解密时移动相反,使文件恢复原来的字母。

二需求分析将某一已知文件的内容(仅限于英文字母)以字符形式读出,根据密钥(用户从键盘输入)将对应字符进行移位操作即可,解密时移动相反。

加密:用户选择功能(运行后键盘输入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");对文件进行加密或者解密处理,并把处理结果输出在屏幕上。

文件移位加密与解密

文件移位加密与解密

河南理工大学计算机科学与技术学院课程设计报告2010 — 2011学年第一学期课程名称设计题目学生姓名学号专业班级指导教师2011 年 01 月 08 日目录●封面 (01)●设计任务书 (03)●功能设计 (03)●结构流程图 (05)●程序实现代码 (05)●程序设计总结 (08)●个人总结 (12)●致谢 (13)●参考文献 (13)课程设计任务书功能设计●设计目的本课程设计的目的是为了保证个人数据资料不被他人非法窃取使用,保护个人的隐私及重要文件!●功能描述本程序主要是对已知文件(为英文字符)通过一定的算法将其转换成非本身的其他英文字母以达到文件加密的目的。

整个系统由以下几大功能模块组成。

1.主控选择模块此模块是主程序操作界面,供用户进行选择。

用户可选择执行加密或解密操作。

2.加密模块加密模块主要是完成对文件的加密操作。

从外部文件中读入任意一个文件并将它加密并显示出来!3.解密模块解密模块是完成对文件的解密工作,将密文转换为可被识别的明文。

从外部文件中读入任意一个文件并将它解密并显示出来!结构流程图程序实现代码#include<iostream.h>#include<stdio.h>#include<stdlib.h>#define M 1000 //预设一个指定文件大小的数字M,方便以后改变void main(){FILE *fp;char ch,TEXT[M]; // M 的数值可以根据文件的大小随意改变int ch1,n,key;cout<<" 文件移位加密与解密"<<endl;cout<<"请将加密(解密)文件复制至“文件移位加密与解密”文件夹中,且该文件为纯文本格式。

"<<endl;while(1){cout<<"请输入文件名:"<<endl; //软件使用帮助和支持cin>>TEXT;if((fp=fopen(TEXT,"r"))==NULL){cout<<"open file fail"<<endl;exit(0);}cout<<"请输入密码:"<<endl;cin>>key;key=key%26;cout<<"加密请输入1,解密请输入2:"<<endl;cin>>n;if(n==1) // n=1时,执行加密算法{cout<<"加密结果:";while((ch=fgetc(fp))!=EOF){if(ch>='A'&& ch<='Z') // 加密文件内容为A-Z{ch=ch+key;if(ch>'Z'){ch=ch-26;}}if(ch>='a'&& ch<='z') //加密文件内容为a-z{ch1=(int)ch+key;if(ch1>122){ch=(char)(ch1-26);}else ch=(char)ch1;}cout<<ch;}cout<<endl;n=0;fclose(fp);}else if(n==2) // n=2时,执行解密算法{cout<<"解密结果:";while((ch=fgetc(fp))!=EOF){if(ch>='A'&& ch<='Z') // 解密文件内容为A-Z{ch=ch-key;if(ch<'A')ch=ch+26;}if(ch>='a'&& ch<='z') //解密文件内容为a-z{ch=ch-key;if(ch<'a')ch=ch+26;}cout<<ch;}cout<<endl;n=0;fclose(fp);}cout<<endl;cout<<endl;cout<<endl;cout<<" -·-·-感谢您的使用,欢迎再次使用-·-·- "<<endl;}}程序设计总结文件移位解密:1.运行程序后,如图示:2.输入文件名(此程序附带文件默认为(un)code.txt),如图示:3.输入密码,如图示:4.选择解密,如图示:文件移位加密1.运行程序后,如图示:2. 输入文件名(此程序附带文件默认为(un)code.txt),如图示:3. 输入密码,如图示:4.选择加密,如图示:个人总结正如早年瑞士联邦技术学院沃思博士所提出的那个著名的公式:“程序=算法+数据结构”,我在本次程序设计中深刻的体会到了算法的重要性。

文件加密操作实验报告

文件加密操作实验报告

文件加密操作实验报告概述文件加密是一种保护数据安全的重要手段,能够将敏感信息转化为无意义的字符序列,防止信息被非法获取和篡改。

本实验旨在探索文件加密的原理、方法和应用,并通过具体实例演示文件加密操作的实施过程。

原理介绍文件加密的基本原理是通过一定的算法将原始数据转化成难以理解的密文,只有经过相应的解密算法才能将密文恢复成可读的明文。

常见的加密算法如对称加密算法、非对称加密算法和哈希算法等。

1. 对称加密算法对称加密算法使用相同的密钥进行加密和解密操作。

常用的对称加密算法有DES、AES等。

其流程如下: 1. 选择一个密钥。

2. 将明文划分为固定长度的数据块。

3. 对每个数据块进行加密,生成对应的密文。

4. 将密文传输或保存。

5. 接收方使用相同的密钥对密文进行解密,恢复成明文。

2. 非对称加密算法非对称加密算法使用一对密钥,分别为公钥和私钥。

公钥负责加密,私钥负责解密。

常见的非对称加密算法有RSA、DSA等。

其流程如下: 1. 生成一对密钥,包括公钥和私钥。

2. 将公钥传输给加密方,私钥保密不公开。

3. 加密方使用公钥对明文进行加密,生成密文。

4. 密文传输给解密方。

5. 解密方使用私钥对密文进行解密,得到明文。

3. 哈希算法哈希算法将任意长度的数据转化为固定长度的哈希值,具有不可逆、唯一性和固定性的特点。

常用的哈希算法有MD5、SHA-1等。

其流程如下: 1. 将原始数据作为输入。

2. 哈希算法对输入数据进行计算,生成哈希值。

3. 可以通过哈希值验证数据的完整性,但无法从哈希值反推原始数据。

4. 哈希算法具有唯一性,不同的数据生成的哈希值一定是不同的。

方法与实验为了深入了解文件加密操作,我们进行了以下实验。

1. 对称加密实验1.选择一个对称加密算法,如AES。

2.准备一份明文文件,如.txt文件。

3.选择一个密钥,进行加密操作。

4.生成密文文件,并将其保存。

5.使用相同的密钥进行解密操作,将密文恢复成明文。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文件的移位加密与解密
一目的
将某一已知文件的内容(仅限于英文字母)以字符形式读出,根据密钥(用户从键盘输入)将对应字符进行移位操作即可,解密时移动相反,使文件恢复原来的字母。

二需求分析
将某一已知文件的内容(仅限于英文字母)以字符形式读出,根据密钥(用户从键盘输入)将对应字符进行移位操作即可,解密时移动相反。

加密:用户选择功能(运行后键盘输入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");
对文件进行加密或者解密处理,并把处理结果输出在屏幕上。

while((c=fgetc(fp))!=EOF)
{
if(c>='a' && c<='z')
yuan[i]=(c - 'a' + password) % 26 +'a';
else
yuan[i]=(c - 'A' + password) % 26 +'A';
i++;
}
yuan[i]='\0';
printf("%s\n",yuan);
fclose(fp);
以只写方式再次打开文件,并把加密或解密后的内容输入文件。

fclose(fp);
fp1=fopen("D:\\abc.txt","w");
fputs(yuan,fp1);
fclose(fp1);
system("pause");
五调试分析
1.测试时应先在D盘建立一个名为”abc.txt”的文件。

在文件内输如内容例如“jiangqi”,运行程序选择1进行加密,密钥输入1则文件加密后输出kjbohrj。

且文件
内部变为加密后内容,再次运行程序,选择2进行解密文件恢复jiangqi。

若进入时选择的不是1或者2则程序提示“输入正确的数字”然后跳出。

2.通过对其他内容以及密钥的测试,运行结果均能满足需求。

六测试结果
加密:
测试前的未加密文件
对程序的运行
运行后的程序
解密:
解密前
运行程序
运行后的记事本
若选择其他按键
七用户使用说明
程序是用C语言编写的,在使用时一定要在D盘建立一个abc.txt的文件,在文件里输入内容,在运行程序并且进行选择功能是,因为choose变量是int型的,所以一定要输入一个阿拉伯数字程序才能正确运行。

通过提示用户能更好使用。

1是加密,2是解密。

八课程设计总结
通过本次课程设计,复习巩固了C语言所学的内容,对文件的打开,写入以及读取文件的内容有了深刻的理解。

对变量的定义有了深刻的理解,通过和同学的讨论了解了修改文件可以使用修改指针位置的方法。

通过对选择功能的设置编写了解了程序是面向他所使用的人的,所以要做到足够的人性化。

通过本次课程设计综合了C语言各章的内容,对自己是一个锻炼的过程。

但是不足的是本次的设计没有使用函数编写这个是一个缺点,并且没有使用其他的指针,以后要加强这方面的练习。

相关文档
最新文档