摘 要
随着现代化校园的发展,人们的文本文件需要更简便、安全和可靠的加密管理模式。设计一个基于c语言的文本文件加密及解密软件,可以方便对文本文件的加密与解密。本设计实现了文本文件的解密及解密,运行软件之后只需输入任意一个文本文件的文件名及后缀名即可对该文本文件进行加密或解密操作。本设计的加密与解密系统,使用了面向各类文件的方法,运用Microsoft Visual C++ 6.0 实现具有加密、解密、帮助信息、读取文本文件、显示结果、退出等功能的文件加密与解密系统。
关键词: 存储结构 文本串 加密 解密 字母映射 C语言
第一章 绪 论
1.1 课设主要研究问题
随着现代化校园的发展,人们的文本文件需要更简便、安全和可靠的加密管理模式。设计一个基于c语言的文本文件加密及解密软件,可以方便对文本文件的加密与解密。本设计实现了文本文件的解密及解密,运行软件之后只需输入任意一个文本文件的文件名及后缀名即可对该文本文件进行加密或解密操作。本设计的加密与解密系统,使用了面向各类文件的方法,运用Microsoft Visual C++ 6.0 实现具有加密、解密、帮助信息、读取文本文件、显示结果、退出等功能的文件加密与解密系统。
1.2 课设应用的理论知识
首先确定加密解密所使用的算法,这里我采用的是异或加密算法。
异或’ 运算为二元逻辑运算,运算规则为:参加运算的两位相
同时结果为0,相异时结果为1。
‘异或’运算的特点:某逻辑变量与0异或时其值不变,与1异或时其值取反。若一字符字节与全1字节(FFH)异或,各位同时变反,原字符信息不可读出,可达到加密的目的。解密也是同样的道理,只需重复上述操作,该字节将恢复原值,即可达到解密的目的。所以同一程序既可以实现加密也可实现解密。
第二章 课设实现过程
2.1实验所需算法
算法思路
输入原文串 输入原文串
↓ ↓
解密串 加密串
↓ ↓
加密串 解密串
2.2具体实现过程
程序中应包含以下两个函数: .
1. n选择加密或解密程序的运行
2. len 将函数用循环结构加密或解密出
- Main():用a和b两个字符串存放字母映射表。
- 主函数递归算法
- for循环结构用于加密,对于当前字母,若在a串中找到的是e,则将它转换成t,否则保护原字符不变,解密原理与加密过程完全相同。
程序源码
#include <iostream>
#include <string>
#include <stdio.h>
#include <algorithm>
using namespace std;
void fun(char a)
{
string s1,s2;
s1="abcdefghijklmnopqrstuvwxyz";
s2="ngzqtcobmuhelkpdawxfyivrsj";
for(int i=0;i<26;i++)
{
if(s1[i]==a)
{
cout<<s2[i];
}
}
}
int main()
{
string s;
cout<<"输入原文串:";
cin>>s;
cout<<"加密解密如下:"<<endl;
cout<<"原文串:"<<s<<endl;
cout<<"加密串:";
int len1=s.length();
for(int i=0;i<len1;i++)
{
fun(s[i]);
}
cout<<endl;
cout<<"原文串:"<<s<<endl;
return 0;
}