`
_jia_shun
  • 浏览: 25416 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

习题4_34加密系统

 
阅读更多
//Jiami.h
class Jiami
{
public :
	void welcomeUI_1();//开始加密
	void welcomeUI_2();//开始解密
	void getEncryptNumber(); //录入要加密的四位数据
	void getDecodeNumber();//录入要解密的四位数据
	void encrypt();//加密算法
	void decode();//解密算法
private:
	int beforeEncryptNumber[4];//设计一个数组来存放解加密之前的数据
	int afterEncryptNumber[4];//存放加密后的数
	int beforeDecodeNumber[4];//存放解密前的数组
	int afterDecodeNumber[4];//存放解密后的数组
};

 

//Jiami.cpp
#include"Jiami.h"
#include<iostream>
using namespace std;

void Jiami::welcomeUI_1()
{
	cout << "下面是加密过程,需要先输入加密前的四位整数,然后可得出加密后的四位整数" << endl;		
}

void Jiami::welcomeUI_2()
{
	cout << "下面是解密过程,需要先输入加密后的四位整数,然后可得加密出前的四位整数" << endl;		
}

//录入加密前的四位数据
void Jiami::getEncryptNumber()//将四位数分入数组中去
{
	int tempNumber ;
	cout << "请输入一个四位整数" << endl;
	cin >> tempNumber;

	for(int i=0;i<4;i++)//每次获取除以10的余数并且从数中减去这个余数
	{
		beforeEncryptNumber[i] = tempNumber%10 ;
		tempNumber = (tempNumber - beforeEncryptNumber[i])/10 ;
	}

	cout << "加密前的四位数为:" ;
	for(int j=3;j>=0;j--)
		cout << beforeEncryptNumber[j] ;
	cout << endl;
}

//录入解密前的数据
void Jiami::getDecodeNumber()//将四位数分入数组中去
{
	int tempNumber ;
	cout << "请输入加密后的四位整数" << endl;
	cin >> tempNumber;

	for(int i=0;i<4;i++)//每次获取除以10的余数并且从数中减去这个余数
	{
		beforeDecodeNumber[i] = tempNumber%10 ;
		tempNumber = (tempNumber - beforeDecodeNumber[i])/10 ;
	}

	cout << "解密前的四位数为:" ;
	for(int j=3;j>=0;j--)
		cout << beforeDecodeNumber[j] ;
	cout << endl;
}

//加密算法
void Jiami::encrypt()
{
	int temp;
	//将每位数字替换成它与7之和再用10求模的结果
	for(int k=0;k<4;k++)
		afterEncryptNumber[k] = (beforeEncryptNumber[k]+7)%10 ;
	
	//替换后的数第1、3位互换,第2、4位互换
	temp = afterEncryptNumber[0] ;
	afterEncryptNumber[0] = afterEncryptNumber[2] ;
	afterEncryptNumber[2] = temp;
	temp = afterEncryptNumber[1];
	afterEncryptNumber[1] = afterEncryptNumber[3] ;
	afterEncryptNumber[3] = temp;
	cout << "加密后的四位数为:" ;
	for(int j=3;j>=0;j--)//*********************j>=0写成j>+0看看会出现什么啊哈哈哈哈哈
		cout << afterEncryptNumber[j] ;
	cout << endl;
}

//解密算法
void Jiami::decode()
{
	int temp;
	
	//将每位数字计算换的加密前的数
	for(int k=0;k<4;k++)
	{
		if((beforeDecodeNumber[k]<=9)&&(beforeDecodeNumber[k]>=7))
			afterDecodeNumber[k] = beforeDecodeNumber[k]-7 ;
		else 
			afterDecodeNumber[k] = beforeDecodeNumber[k]+3 ;
	}
	
	//替换后的数第1、3位互换,第2、4位互换
	temp = afterDecodeNumber[0] ;
	afterDecodeNumber[0] = afterDecodeNumber[2] ;
	afterDecodeNumber[2] = temp;
	temp = afterDecodeNumber[1];
	afterDecodeNumber[1] = afterDecodeNumber[3] ;
	afterDecodeNumber[3] = temp;
	
	cout << "解密后的四位数为:" ;
	for(int j=3;j>=0;j--)//*********************j>=0写成j>+0看看会出现什么啊哈哈哈哈哈
		cout << afterDecodeNumber[j] ;
	cout << endl;
}

 

//main.cpp

#include<string>
#include"Jiami.h"

int main()
{
	//加密
	Jiami encrypt ;
	encrypt.welcomeUI_1();
	encrypt.getEncryptNumber();
	encrypt.encrypt();
	
	//解密
	Jiami decode;
	decode.welcomeUI_2();
	decode.getDecodeNumber();
	decode.decode();
	system("pause>>cout");
	return 0;
}

 

分享到:
评论

相关推荐

    加密解密第一版 配套光盘 (光盘下载) [评价可免费]

    加密与解密___软件保护技术与解决方案 此补充习题与《加密与解密--—软件保护技术与解决方案》一书配套,所有的练习软件,直接点击下载。如你学习过程有疑问时欢迎去论坛交流。加密与解密——一场永远不会停止的矛与...

    信息系统安全(陈萍、张涛、赵敏)课后习题答案、章节ppt及期末复习知识整理.zip

    ④加密文件系统⑤BitLocker机制⑥Windows审计/日志机制⑦Windows协议过滤和防火墙 6. 最小特权管理基本思想:最小特权指在完成某种操作时所赋予网络中每个主体必不可少的特权。最小特权原则应限定系统中每个主体所...

    计算机应用基础期末复习练习题.doc

    计算机应用基础期末复习练习题 一、选择题(每空 2 分,共 50 分) 1、显示器规格中的1024*768,表示显示器的(A )。 A.分辨率 B.颜色 C.灰色 D.屏幕大小 2、计算机的病毒不能通过( C )传播。 A.硬盘 B.软盘 C....

    希赛网络工程师考试考点突破、案例分析、实战练习一本通(电子工业出版社-施游,朱小平主编).分卷Part1

    12.1.5 其他知识点 12.2 典型试题分析 12.3 实战练习题 12.4 练习题解析第13章 网络系统的分析与设计 13.1 考点突破 13.1.1 历年考试情况分析 13.1.2 网络分析 13.1.3 网络设计 13.2 典型试题分析 13.3 实战练习题 ...

    IP-Guard上机练习题2020.docx

    IP-guard企业信息监管系统,是一款领先的内网安全软件,它能够协助企业解决最棘手的内网安全问题,借助IP-guard强大的功能,企业能够有效地进行用户行为管理,防范信息外泄,文档透明加密,敏感内容识别管理系统DLP...

    阅读PDG加密文件的软件

    能阅读PDG加密文件的软件,使用说明内详 能打开本网站的资源:操作系统——习题与解析.zip

    数据库系统概论第5版课后答案第4章-数据库安全性(1).doc

    信息安全标准的发展简史 "评估保证级 "定义 "TCSEC安全级别 " " " "(近似相当) " "EAL1 "功能测试 " " "EAL2 "结构测试 "C1 " "EAL3 "系统地测试和检查 "C2 " "EAL4 "系统地设计、测试和复查"B1 " "EAL5 "半形式...

    Java 工厂设计模式例题

    例题简单的阐述了Java工厂模式的概念,有利于读者更好地了解Java工厂模式

    数据库系统基础教程(第二版)英文版课后习题答案 Jeffrey D.Ullman and Jennifer Widom

    数据库系统基础教程(第二版)英文版课后习题答案 Jeffrey D. Ullman and Jennifer Widom 数据库系统是计算机科学中的一门重要课程,对于计算机专业学生来说是必修的课程。数据库系统基础教程(第二版)英文版课后...

    数据库系统概论(王珊 萨师煊) 基础部分---北大讲义

    4. 5 数据加密 4. 6 统计数据库安全性 4. 7 小结 习题 实验3 数据控制(安全性部分) 本章参考文献 第五章 数据库完整性 5. 1 实体完整性 5. 2 参照完整性 5. 3 用户定义的完整性 5. 4 完整性约束命名子句 5. 5 域中的...

    《网络操作系统》习题.doc

    《网络操作系统》习题 一、填空题 1. Windows Server 2003的 标准 版本适用于中、小型企业,主要用作服务器,提供各种常见的网络功能,如:文件服务 、打印服务、通信服务、Web服务等。 2. 通过查看 硬件兼容性 列表...

    Python经典练习题合集(含分析+代码)

    4、Python是一门跨平台的语言【没有操作系统的限制,在任何操作系统上都可以运行Python代码】; 5、Python拥有强大和丰富的库,又被称为胶水语言,能把其他语言(主要c/c++)写的模块很轻松地结合在一起。 二、...

    寒江独钓-Windows内核安全编程(高清完整版).part4

    练习题 16 第2章 内核编程环境及其特殊性 17 2.1 内核编程的环境 18 2.1.1 隔离的应用程序 18 2.1.2 共享的内核空间 19 2.1.3 无处不在的内核模块 20 2.2 数据类型 21 2.2.1 基本数据类型 21 2.2.2 返回状态 22 ...

    加密 与 解密 第一版

     如你想系统地学习加解密知识,请参考由本站与广大网友合作推出的新书《加密与解密--软件保护技术及完全解决方案 》,本书全面介绍Windows下软件的保护与破解技术,内容全面,讲解详细,配套光盘备有实战习题,适合...

    数据库系统概论(基础篇)教学大纲.docx

    课程大纲 第一讲:初识数据库系统 引言 数据库的4个基本概念 数据技术的产生,数据系统的特点 第一讲课件 第二讲:数据库系统的核心:数据模型 概念模型,数据模型的组成要素 层次模型,网状模型 关系模型 第二讲...

    vc++ 应用源码包_1

    主要文件就4个,非常适合学习,详细见源码。 OPENG开发的示例代码c++版 演示了OpenG的使用方法,内含几个实例,一个实例就3个文件。 p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare...

    操作系统复习题(包含习题讲解)

    第一章 操作系统引论 学习本章的目的是使学生建立起 OS的基本概念。要求了解OS的引入和发展, 理解多道程序设计技术,掌握操作系统的功能和特征,了解 分层式结构和微内核结构。 第二章 进程和线程 本章的学习目的...

    寒江独钓-Windows内核安全编程(高清完整版).part1

    练习题 16 第2章 内核编程环境及其特殊性 17 2.1 内核编程的环境 18 2.1.1 隔离的应用程序 18 2.1.2 共享的内核空间 19 2.1.3 无处不在的内核模块 20 2.2 数据类型 21 2.2.1 基本数据类型 21 2.2.2 返回状态 22 ...

    寒江独钓-Windows内核安全编程(高清完整版).part7

    练习题 16 第2章 内核编程环境及其特殊性 17 2.1 内核编程的环境 18 2.1.1 隔离的应用程序 18 2.1.2 共享的内核空间 19 2.1.3 无处不在的内核模块 20 2.2 数据类型 21 2.2.1 基本数据类型 21 2.2.2 返回状态 22 ...

Global site tag (gtag.js) - Google Analytics