【要求】
编写一个简单加密程序。输入一个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位整数明码加密和解密相关推荐

  1. php des加密解密 16位,php DES加密解密的代码一例

    /** * php des加密与解密 * by http://www.jbxue.com */ function do_mencrypt($input, $key) { $input = str_re ...

  2. C语言凯撒密码字母向后偏移三位,凯撒加密解密(java字母移位)

    1.设计思想:加密就是将字符数据转化为ASC码表中的数字,a-w之间通过加3之后再转化为字符型输出,x-z之间通过转化为ASC码表中的数字后减去23再转化为字符型输出.解密就是将字符数据转化为ASC码 ...

  3. MD5加密,16位加密,32位加密,Base64加密,解密

    首先,16位加密与32位加密的区别,在于16位加密就是在32位加密的字符串中取中间16位,即是第9位到24位 比如现在有密码 sys 32位加密后的字符串就是 36BCBB801F5052739AF8 ...

  4. 文件cpy改进,文件加密,对文件两次运算可解密,密码65

    #include <stdio.h> #include <sys/ioctl.h> #include <string.h> /******************* ...

  5. 蓝桥 卷“兔”来袭编程竞赛专场-07明码加密 题解

    赛题介绍 挑战介绍 清末,电报技术进入中国.上海大北水线电报公司在 1871 年选用了六千八百九十七个汉字,代以四码数字,编写成了中国最早的电报明码本.为了传输的内容可以保密,又设计出了将明码本加密的 ...

  6. 【计算机网络】网络安全 : 对称密钥密码体质 ( 数据加密标准 DES | DES 加密过程 | DES 保密性 | 三重 DES 加密 )

    文章目录 一. 对称密钥密码体质 二. 数据加密标准 DES 三. DES 加密过程 四. DES 保密性 五. 三重 DES 加密 一. 对称密钥密码体质 对称密钥密码体质 : 又称为 常规密钥密码 ...

  7. 32位md5解密_冰蝎特征检测及报文解密

    点击"蓝字"关注我们,不迷路~‍‍前言 19年驻场于某金融单位.参加19年9月.11月两次攻防演练,负责攻防演练组织.技术支持和复盘.期间,多个攻击队伍使用冰蝎 webshell ...

  8. javascript 解密_Javascript中的AES加密和Java中的解密

    javascript 解密 AES代表高级加密系统,它是一种对称加密算法,很多时候我们需要在客户端加密一些纯文本,例如密码,然后将其发送到服务器,然后由服务器解密以进行进一步处理.AES加密和解密更加 ...

  9. NTL密码算法开源库——大整数ZZ类(四)

    2021SC@SDUSC RSA算法原理 密钥生成的步骤 第一步,随机选择两个不相等的质数p和q. 爱丽丝选择了61和53.(实际应用中,这两个质数越大,就越难破解.) 第二步,计算p和q的乘积n. ...

最新文章

  1. IBM RSA(Rational Software Architect)试用版下载地址
  2. linux svn配置教程,linux svn搭建及配置
  3. 转: Springboot — 用更优雅的方式发HTTP请求(RestTemplate详解)
  4. 面向数据结构设计的基本思想
  5. UI设计配色专辑素材|简易完成色彩协调性!
  6. bzoj3670 [Noi2014]动物园
  7. Android:权限处理
  8. 视频教程-网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】-网络技术
  9. 硕士研究生培养方案及课程大纲
  10. css 都有哪些字体,css字体有哪些
  11. 路由器修改dns服务器,路由器DNS怎么设置如何修改路由器DNS服务器地址
  12. 程序和算法之间,主要有什么关系?
  13. Hugo Travis
  14. GOOGLE搜索技巧
  15. 占空比可调的分频电路实现
  16. SE、ECA、CA、SA、CBAM、ShuffleAttention、SimAM、CrissCrossAttention、SK、NAM、GAM、SOCA注意力模块、程序
  17. 天威诚信:数字认证体系助推车联网积极稳妥发展
  18. Android开发技术
  19. 几点项目里的经验教训
  20. ESC, ESP, VSC 电子稳定系统 与 ABS

热门文章

  1. 网易云课堂数据分析师教程(云盘下载)
  2. 如何解决连接共享打印机时需要输入密码的问题
  3. 随机森林的简单学习记录
  4. 鱼眼摄像头标定与畸变校正(双OPENCV版本)
  5. 美国队长的工资 python代码-Python有趣的小案例-美国队长盾牌
  6. 【BOI2013】文本编辑器——全面理解线头DP
  7. 计算机应用论文做游戏,计算机游戏探究论文(2)
  8. ThinkPHP学生在线考试管理系统
  9. [Python + Django] Web在线考试管理系统设计及代码实现
  10. SQL数据库设计(一)---需求分析与逻辑设计