2015年大二上-数据结构-串(4)- 字符串加密
来源:互联网 发布:足彩过滤软件 编辑:程序博客网 时间:2024/05/22 08:22
一个文本串可用事先编制好的字符映射表进行加密。例如,设字符映射表为:
1.abcdefghijklmnopqrstuvwxyz 2.ngzqtcobmuhelkpdawxfyivrsj
则字符串“lao he jiao shu ju jie gou”被加密为“enp bt umnp xby uy umt opy”。
设计一个程序,实现加密、解密算法,将输入的文本进行加密后输出,然后进行解密并输出。
/**Copyright (c) 2014,烟台大学计算机学院*All rights reserved.*文件名称:Annpion.cpp*作者:王耀鹏*完成日期:2015年12月6日*版本号:v1.0**问题描述:顺序串算法*输入描述:输入原文串。*输出描述:输出相应的加密串和解密串。*/#include <stdio.h>#include "sqString.h"SqString A,B; //用于存储字符映射表SqString EnCrypt(SqString p){ int i=0,j; SqString q; while(i<p.length) { for(j=0;p.data[i]!=A.data[j]&&j<A.length;++j); if(j>=A.length) q.data[i]=p.data[i]; else q.data[i]=B.data[j]; ++i; } q.length=p.length; return q;}SqString UnEncrypt(SqString p){ int i=0,j; SqString q; while(i<p.length) { for(j=0;p.data[i]!=B.data[j]&&j<B.length;++j); if(j>=A.length) q.data[i]=p.data[j]; else q.data[i]=A.data[j]; ++i; } q.length=p.length; return q;}int main(){ SqString p,q; StrAssign(A,"abcdefghijklmnopqrstuvwxyz"); //建立A串 StrAssign(B,"ngzqtcobmuhelkpdawxfyivrsj"); //建立B串 char str[MaxSize]; printf("输入原文串:"); gets(str); //获取用户输入的原文串 StrAssign(p,str); //建立p串 printf("加密解密如下:\n"); printf(" 原文串:"); DispStr(p); q=EnCrypt(p); //p串加密产生q串 printf(" 加密串:"); DispStr(q); p=UnEncrypt(q); //q串解密产生p串 printf(" 解密串:"); DispStr(p); printf("\n"); return 0;}
运行结果:
0 0
- 2015年大二上-数据结构-串(4)- 字符串加密
- 2015年大二上-数据结构-栈(4)- 数制转换
- 2015年大二上-数据结构-队列(4)- 队列数组
- 2015年大二上-数据结构-图-2-(4)-Floyd算法
- 2015年大二上-数据结构-内部排序-(4)-快速排序
- 2015年大二上-数据结构-顺序表(2)-奇右偶左
- 2015年大二上-数据结构-链表(1)-建立单链表
- 2015年大二上-数据结构-链表(3)-单链表算法
- 2015年大二上-数据结构-链表(7)-多项式求和
- 2015年大二上-数据结构-栈(5)- 后缀表达式
- 2015年大二上-数据结构-队列(5)- 队列数组
- 2015年大二上-数据结构-队列(6)- 停车场模拟
- 2015年大二上-数据结构-串(1)- 顺序串算法库
- 2015年大二上-数据结构-串(2)- 链串算法库
- 2015年大二上-数据结构-串(3)- 顺序串算法
- 2015年大二上-数据结构-串(5)- 计数的模式匹配
- 2015年大二上-数据结构-链表(4)-双链表算法库
- 2015年大二上-数据结构-图-2-(1)-Prim算法
- 通过URL和HTTP请求获取网络资源两者有什么区别
- json
- 百度视频进军虚拟现实内容 VR频道震撼上线
- MySQL的安装
- MAC android studio 新建hollowerd 提示:install bool 19.1.0解决方法 苹果电脑
- 2015年大二上-数据结构-串(4)- 字符串加密
- Linux网络安全策略
- SecureCRT 登陆虚拟机中Ubuntu详解
- Xcode真机调试(有证书)
- CF334 div1 D :Ruminations on Ruminants
- hdu2571 命运
- Struts2+AJax判断用户名是否存在
- C++显示类型转换
- GetMessage与PeekMessage的区别