【C++密码加密解密】6位整数明码加密和解密
【要求】
编写一个简单加密程序。输入一个6位整数的明码,按以下方法加密:首先,将每位数字替换成它与7相加之和再用10求模的结果;然后逆置;最后输出密码。再编写程序,把这个密码还原成明码。若输入错误,则显示错误信息后退出程序。
例如,输入原码数据n为:200911,则显示密码n1为:886779,解密后的原码n2为:200911。
注:密码n1不一定是6位整数,但明码n和n2是相等的6位整数。
【代码】
#include<iostream>
using namespace std;
int main()
{int i,n,n1=0,n2=0,t=0;
cout<<“输入一个6位整数:”;
cin>>n;
if(n>999999||n<100000)
{cout<<“输入错误,退出程序。\n”;
return 0;
}
//加密
for(i=1; i<=6; i++)
{n1*=10;
t=n%10;
n1+=(t+7)%10;
n=(n-t)/10;
}
cout<<“加密:”<<n1<<endl;
//解密
for(i=1; i<=6; i++)
{n2*=10;
t=n1%10;
if(t>=7)
n2+=t-7;
else
n2+=t+10-7;
n1=(n1-t)/10;
}
cout<<“解密:”<<n2<<endl;
}
【解释】
主要来讲一讲解密过程,加密时候我们是用“每个数字与7相加之和再用10求模”,最后把结果逆置。逆置很好处理,只要从低位到高位,把每一位取到的数字每一次都乘10再加上下一次的数字即可。
那么,
(x+7)%10=y;知y如何求x?
x是正数。
如果x是0,1,2,那么x+7就不会产生进位,(x+7)%10就是(x+7)本身。因此x=y-7。
反之,如果x是3,4,5,6,7,8,9。x+7就会进位。(x+7)%10,可以理解成,x的长度加上7的长度,由于超过了10,把10及以下长度砍去,最后剩下部分长度就是y。因此用y+10恢复成没砍掉以前的(x+7)的长度,再减去7就得到x。
【C++密码加密解密】6位整数明码加密和解密相关推荐
- php des加密解密 16位,php DES加密解密的代码一例
/** * php des加密与解密 * by http://www.jbxue.com */ function do_mencrypt($input, $key) { $input = str_re ...
- C语言凯撒密码字母向后偏移三位,凯撒加密解密(java字母移位)
1.设计思想:加密就是将字符数据转化为ASC码表中的数字,a-w之间通过加3之后再转化为字符型输出,x-z之间通过转化为ASC码表中的数字后减去23再转化为字符型输出.解密就是将字符数据转化为ASC码 ...
- MD5加密,16位加密,32位加密,Base64加密,解密
首先,16位加密与32位加密的区别,在于16位加密就是在32位加密的字符串中取中间16位,即是第9位到24位 比如现在有密码 sys 32位加密后的字符串就是 36BCBB801F5052739AF8 ...
- 文件cpy改进,文件加密,对文件两次运算可解密,密码65
#include <stdio.h> #include <sys/ioctl.h> #include <string.h> /******************* ...
- 蓝桥 卷“兔”来袭编程竞赛专场-07明码加密 题解
赛题介绍 挑战介绍 清末,电报技术进入中国.上海大北水线电报公司在 1871 年选用了六千八百九十七个汉字,代以四码数字,编写成了中国最早的电报明码本.为了传输的内容可以保密,又设计出了将明码本加密的 ...
- 【计算机网络】网络安全 : 对称密钥密码体质 ( 数据加密标准 DES | DES 加密过程 | DES 保密性 | 三重 DES 加密 )
文章目录 一. 对称密钥密码体质 二. 数据加密标准 DES 三. DES 加密过程 四. DES 保密性 五. 三重 DES 加密 一. 对称密钥密码体质 对称密钥密码体质 : 又称为 常规密钥密码 ...
- 32位md5解密_冰蝎特征检测及报文解密
点击"蓝字"关注我们,不迷路~前言 19年驻场于某金融单位.参加19年9月.11月两次攻防演练,负责攻防演练组织.技术支持和复盘.期间,多个攻击队伍使用冰蝎 webshell ...
- javascript 解密_Javascript中的AES加密和Java中的解密
javascript 解密 AES代表高级加密系统,它是一种对称加密算法,很多时候我们需要在客户端加密一些纯文本,例如密码,然后将其发送到服务器,然后由服务器解密以进行进一步处理.AES加密和解密更加 ...
- NTL密码算法开源库——大整数ZZ类(四)
2021SC@SDUSC RSA算法原理 密钥生成的步骤 第一步,随机选择两个不相等的质数p和q. 爱丽丝选择了61和53.(实际应用中,这两个质数越大,就越难破解.) 第二步,计算p和q的乘积n. ...
最新文章
- IBM RSA(Rational Software Architect)试用版下载地址
- linux svn配置教程,linux svn搭建及配置
- 转: Springboot — 用更优雅的方式发HTTP请求(RestTemplate详解)
- 面向数据结构设计的基本思想
- UI设计配色专辑素材|简易完成色彩协调性!
- bzoj3670 [Noi2014]动物园
- Android:权限处理
- 视频教程-网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】-网络技术
- 硕士研究生培养方案及课程大纲
- css 都有哪些字体,css字体有哪些
- 路由器修改dns服务器,路由器DNS怎么设置如何修改路由器DNS服务器地址
- 程序和算法之间,主要有什么关系?
- Hugo Travis
- GOOGLE搜索技巧
- 占空比可调的分频电路实现
- SE、ECA、CA、SA、CBAM、ShuffleAttention、SimAM、CrissCrossAttention、SK、NAM、GAM、SOCA注意力模块、程序
- 天威诚信:数字认证体系助推车联网积极稳妥发展
- Android开发技术
- 几点项目里的经验教训
- ESC, ESP, VSC 电子稳定系统 与 ABS