数据结构课程设计-文本串加密和解密程序

摘  要

  随着现代化校园的发展,人们的文本文件需要更简便、安全和可靠的加密管理模式。设计一个基于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 将函数用循环结构加密或解密出

  1.  Main():用a和b两个字符串存放字母映射表。
  2.  主函数递归算法
  3. 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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X-MTing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值