`
_jia_shun
  • 浏览: 27218 次
  • 性别: 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;
}

 

分享到:
评论

相关推荐

    vg.rar_Vigenere_playfair_vg_vigenere加密

    在压缩包内的"www.pudn.com.txt"文件中,可能包含了关于Vigenère和Playfair密码的详细解释、示例或者是一些练习题,而"工作"这个文件名可能是另一个相关文件,可能包含了加密或解密的实际操作步骤,或者是对这两种...

    位运算练习题_参考答案.pdf

    位运算练习题参考答案 本文档提供了一系列位运算练习题的参考答案,涵盖了...这 25 道练习题涵盖了位运算的基本概念、运算符优先级、位运算符的使用、掩码的应用、移位运算等知识点,为读者提供了一个系统的学习资源。

    操作系统习题集,近十章的练习题

    3. **系统安全性的增强**:鉴于网络安全威胁的日益增多,未来的操作系统将更加重视安全防护机制的构建,包括但不限于防火墙、加密技术、用户权限管理等方面。 4. **智能化和自动化**:利用人工智能和机器学习技术,...

    分布式系统概念与设计 练习题

    以上这些知识点可能会出现在“分布式系统概念与设计”的练习题中,通过解答这些题目,可以加深对分布式系统设计的理解和应用能力。在实际的学习过程中,应注重理论与实践相结合,通过编写代码或模拟系统来巩固知识。

    操作系统期末复习综合练习题.doc

    操作系统期末复习综合练习题 操作系统期末复习综合练习题是操作系统领域的重要复习材料,本篇资源题目涵盖了操作系统的基本概念、功能、类型、进程管理、存储管理、文件系统、安全机制等方面的知识点。 基本概念 ...

    CTF-入门练习题

    这个“CTF-入门练习题”很可能包含了一系列这样的挑战,旨在帮助初学者提升在网络安全领域的技能。 【网络攻防】 网络攻防是CTF中的核心部分,涉及攻击者与防御者的对抗。攻击者可能试图寻找系统漏洞,进行SQL注入...

    java ATM练习题

    这套练习题通常包括ATM(自动取款机)系统的各种功能实现,例如存款、取款、查询余额、转账等,这些都是银行系统中最基本的操作。 首先,我们要理解ATM系统的核心概念。ATM系统是基于客户-服务器(Client-Server)...

    操作系统练习题及答案.pdf

    操作系统练习题及答案 操作系统是一个复杂的软件系统,负责管理计算机硬件资源,提供各种服务和接口,以便用户和应用程序能够更好地使用计算机资源。以下是操作系统相关知识点的总结: 一、操作系统定义和基本特征...

    第五章文件系统练习题模拟试题.pdf

    文件系统练习题模拟试题 文件系统是一种管理计算机系统软件资源的系统,主要对计算机系统的软件资源进行管理。文件系统的主要功能是实现“按名存取”,即根据用户提供的文件名找到文件在外存的地址。文件系统的主要...

    操作系统练习题1111

    "操作系统练习题1111" 一、操作系统发展过程 操作系统的发展过程是原始操作系统、管理程序、操作系统。原始操作系统是最早的操作系统,管理程序是对操作系统的管理,操作系统是现代操作系统。 二、用户程序中的...

    mysql数据库程序设计练习题.docx

    MySQL数据库程序设计练习题 本资源摘要信息主要对MySQL数据库程序设计进行了详细的介绍和练习题的设计。该资源涵盖了数据库系统的核心、SQL语言的功能、关系数据库设计、事务控制、数据一致性、安全性等多方面的...

    数据库系统概论练习题.doc

    数据库系统概论练习题 数据库系统概论是一个重要的计算机科学领域,涉及到数据库的设计、实现和管理。下面是数据库系统概论的知识点总结: 一、数据库系统的概念 * 数据库系统(DBS)是一个计算机系统,包含...

    密码学练习题(含答案).pdf

    密码学是信息科学的一个分支,主要研究如何保护信息的安全性,包括信息的机密性、完整性、可用性以及认证...通过这份练习题的分析,学习者应能更深入地理解密码学的概念和应用,并能够在实际场景中正确地运用相关知识。

    数据库系统概论SQL上机练习题

    数据库系统概论 SQL 上机练习题 本资源摘要信息中,我们将从给定的文件信息中生成相关的知识点,涵盖数据库系统概论和 SQL 的基本概念、数据库设计、数据查询等方面的知识点。 知识点 1:数据库系统概论 * 数据库...

    流密码的解析与练习题

    "流密码的解析与练习题" 流密码是密码学中的一种加密方法,利用密钥 k 产生一个密钥流,并使用密钥流对明文串进行加密。流密码的基本思想是利用密钥流发生器 f 产生密钥流,并使用密钥流对明文串进行加密。 流密码...

    《加密与解密》随书光盘(五)习题

    习题可能包括选择题、填空题、简答题以及编程题目,要求读者实现特定的加密和解密功能,或者分析给定加密系统的安全性。 为了深入学习加密与解密,读者需要掌握基础的数学知识,如数论、概率论和组合数学,同时需要...

    数据库安全性练习题和答案.doc

    数据库安全性练习题和答案 数据库安全性是一种保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏的技术和方法。在数据库系统中,安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。...

    第7章考试系统上机练习题.rar.rar

    在本章的考试系统上机练习题中,我们将聚焦于理解和掌握计算机科学中与考试系统相关的各种技术概念、设计原则以及实现方法。考试系统是一种重要的教育信息化工具,它旨在提高教学效率,方便教师管理和评估学生的学习...

    数据库系统概念 第6版 Avi Silberschatz 课后实践练习和练习题答案

    课后实践练习和练习题是学习过程中不可或缺的部分,它们帮助巩固理论知识,提升实际操作技能。以下是基于这个主题的数据库相关知识点详解: 1. **数据库基础**:数据库是一个组织和存储数据的系统,它提供数据的...

    《Linux操作系统应用》综合练习题.pdf

    《Linux操作系统应用》综合练习题涉及了广泛的Linux操作系统的基础知识,包括用户管理、文件系统、命令使用、权限控制、服务配置等多个方面。以下是对这些知识点的详细解释: 1. **用户帐号管理**:Linux中存放用户...

Global site tag (gtag.js) - Google Analytics