资料库
首页
行业资料库
养殖
模电
互联网
生活资料库
说明书
学习资料库
面试题
答案
网络信息安全 实验报告 AES加密解密.pdf
发布时间:2022-06-26
发布人:admin
分类:
说明书
资料大小:0.40M
资料格式:pdf
举报
版权申诉
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
下载资料
收藏
0
文本预览
实验二:AES 加密解密 一、 实验要求 做实验并写实验报告。修改例程 cryptoDemo.cpp 为 encfile.cpp :从命令行接受 3 个字 符串类型的参数:参数 1,参数 2,参数 3。参数 1=encrypt 表示加密,参数 2=decrypt 表 示解密;参数 2 为待加密 、解密的文件名;参数 3 为密码。 二、 实验准备 2.1 实验环境 VMware Workstation Pro、Ubuntu14.04、gcc 2.2 安装 openssl 库,使用命令 sudo apt-get install libssl-dev 三、 实验过程 3.1 编译 cryptoDemo.cpp 先将 #include “aes.h”改为 #include
,然后在终端输入 gcc -o cryptoDemo cryptoDemo.cpp –lcrypto,然后在终端输入 ./cryptoDemo 结果如下: 3.2 按要求改写 Demo
修改部分:拆解原 Demo,加上文件读写功能,代码如下: // cryptoDemo.cpp : Defines the entry point for the console application. // Windows: cl cryptoDemo.cpp // Linux: gcc -o cryptoDemo cryptoDemo.cpp -lcrypto // Linux: gcc -o encfile encfile.cpp -lcrypto #include
#include
#include
#include
#include
#pragma comment(lib,"libeay32.lib") void encrypt(char *filename, char passwd[], int pwdLen) //加密 { char inString[1024]; char enFile[1024]; //加密后的文件名 strcpy(enFile,filename); strcat(enFile,"_encrypt"); //加密后的文件名 //文件读取 FILE *fp=fopen(filename,"r"); if(fp==NULL) { printf("文件%s 打开错误\n",filename); fclose(fp); return; } char c=fgetc(fp); //从 fp 所指文件的当前指针位置读取一个字符 int i=0; while(c!=EOF) { inString[i++]=c; c=fgetc(fp); } inString[i]=0; //输入结束符 fclose(fp); //加密(demo 部分代码) int j, len, nLoop, nRes; char enString[1024]; unsigned char buf[16]; unsigned char buf2[16]; unsigned char aes_keybuf[32]; AES_KEY aeskey; int inLen=strlen(inString); //原始字符串的长度 // 准备 32 字节(256 位)的 AES 密码字节 memset(aes_keybuf,0x90,32);
if(pwdLen<32){ len=pwdLen; } else { len=32;} for(i=0;i
0){ memset(buf,0,16); for(j=0;j
{ printf("文件%s 打开错误\n",filename); fclose(fp); return; } char c=fgetc(fp); //从 fp 所指文件的当前指针位置读取一个字符 int i=0; while(c!=EOF) { enString[i++]=c; c=fgetc(fp); } enString[i]=0; //输入结束符 fclose(fp); //解密 int j, len, nLoop, nRes; char deString[1024]; //解密后的字符串 unsigned char buf[16]; unsigned char buf2[16]; unsigned char aes_keybuf[32]; AES_KEY aeskey; // 准备 32 字节(256 位)的 AES 密码字节 memset(aes_keybuf,0x90,32); if(pwdLen<32){ len=pwdLen; } else { len=32;} for(i=0;i
0){ memset(buf,0,16); for(j=0;j<16;j++) buf[j]=enString[i*16+j]; AES_decrypt(buf,buf2,&aeskey); for(j=0;j<16;j++) deString[i*16+j]=buf2[j]; //puts("decrypt"); } deString[i*16+nRes]=0;
//写入文件 FILE *fpw=fopen(deFile,"w"); if(fpw==NULL) { printf("不能写入%s.\n",deFile); fclose(fpw); return; } int len1=strlen(deString); for(i=0;i
3.5 执行加密 加密后的文件为 testfile_encrypt,密文内容为: 3.6 执行解密 解密后的文件为 test_encrypt_decrypt,内容为: 3.7 结论 可以看出,加密前后的内容是一致的。 四、 实验总结 通过本次实验,对 aes 加密解密有了简单的了解,并通过实验实现了加密解密的过程。 同时熟悉了下 C 语言。
分享到:
赞
收藏
上一篇
(三位表头)0-50V明纬改可调电源.pdf
下一篇
seLinux详解.docx
相关推荐
2023年江西萍乡中考道德与法治真题及答案.doc
2012年重庆南川中考生物真题及答案.doc
2013年江西师范大学地理学综合及文艺理论基础考研真题.doc
2020年四川甘孜小升初语文真题及答案I卷.doc
2020年注册岩土工程师专业基础考试真题及答案.doc
2023-2024学年福建省厦门市九年级上学期数学月考试题及答案.doc
2021-2022学年辽宁省沈阳市大东区九年级上学期语文期末试题及答案.doc
2022-2023学年北京东城区初三第一学期物理期末试卷及答案.doc
2018上半年江西教师资格初中地理学科知识与教学能力真题及答案.doc
2012年河北国家公务员申论考试真题及答案-省级.doc
2020-2021学年江苏省扬州市江都区邵樊片九年级上学期数学第一次质量检测试题及答案.doc
2022下半年黑龙江教师资格证中学综合素质真题及答案.doc
资料库
安全技术
共收录1285份资料,累计4个分类,关注成员有19位,主要包括:网络攻防,系统安全,其它,网络安全
热门标签
网络攻防
系统安全
其它
网络安全
最新资料
2022-2023学年河北省唐山市高三上学期期末数学试题及答案.doc
2022-2023学年河北省张家口市高三上学期期末数学试题及答案.doc
2022-2023学年河北省衡水市高三上学期期末语文试题及答案.doc
2022-2023学年河北省保定市高三上学期期末数学试题及答案.doc
2022-2023学年河北省张家口市高三上学期期末语文试题及答案.doc
2022-2023学年河北省石家庄市高三上学期期末语文试题及答案.doc
2020-2021年四川省凉山州西昌市高一物理上学期期中试卷及答案.doc
2020-2021年四川省遂宁市安居区高一英语上学期期中试卷及答案.doc
2020-2021年四川省西昌市高一英语上学期期中试卷及答案.doc
2021-2022年四川省广安市岳池县高一地理上学期期中试卷及答案.doc
2021-2022年四川省成都市郫都区高一物理上学期期中试卷及答案.doc
2021-2022年四川省广安市岳池县高一物理上学期期中试卷及答案.doc