编写一个简单加密程序!!!

编写一个简单加密程序

输入一个6位整数的明码,按以下方法加密:首先,将每位数字替换成它与7相加之和再用10求模的结果;
然后逆置 ,最后输出密码。在编写程序,把这个密码还原成明码。若输入错误显示错误信息后退出程序。

首先拿到这道题我们直到三个模块:加密,解密,还有错误信息退出。
先来分析加密;
1.不用数组时取出每一位我们知道可以用取余的方法,在不断÷10,将剩余的数再取余可以得到每一位数,得到固定位的数字后我们对这个数进行操作,(用jieguo来计最后的结果)+7再%10,为了逆置,将该数字操作过后得到的数字每次循环都×10,共循环6次可以得到,部分代码如下:

for(i=1;i<=6;i++)
{
jieguo*=10;//每次的数字向前移一位如2变成20要*10,20*10=200
t0=n%10;//n是原数,用t 得到每位数字
t1=(t0+7)%10;//操作后的数字
jieguo+=t1;
n=n/10;//因为n是int型,若n=666666,算后结果为66666
}

然后就是解码了,可以知道两者就是(+7%10)这步算法不同其他全都一样
若原来为200911则显示密码是886779,我们分析加密可知2+7=9%10就=9,1+7=8%10就=8,0+7=7%10就=7而小于7的数就一定是+7后结果大于十要了一个个位数,所以如果加密完的数jieguo中进行取各位数字,有两种情况,若(>7)则减去7就好,若(<7)n2+=t+10-7,其他过程全仿照上面只是别将变量弄混即可

for(i=1;i<=6;i++)
{n2*=10;
t=jieguo%10;
if(t>=7)n2+=t-7;
else 
     n2+=t+10-7;
     jieguo=jieguo/10;}

if(n>999999||n<1000000)
{cout<<“输入错误退出程序\n”
return 0;}
结束!!!撒花

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
抱歉,作为AI语言模型,我无法编写程序。但是,我可以向您介绍一种常见的字符加密方法:凯撒密码。 凯撒密码是一种简单的替换加密方法,它的原理是将明文中的每个字母都按照规定的字母表向右(或向左)移动一定的位置,得到密文。例如,以右移3位为例,明文中的字母A会被替换成D,B会被替换成E,以此类推。 以下是一个简单的凯撒密码加密程序的Python实现: ```python def caesar_cipher(message, shift): result = "" # 遍历明文中的每个字符 for char in message: # 如果是字母,则进行加密 if char.isalpha(): # 计算加密后的字符 char_code = ord(char) + shift if char.isupper(): # 处理大写字母 char_code = (char_code - 65) % 26 + 65 else: # 处理小写字母 char_code = (char_code - 97) % 26 + 97 # 将加密后的字符添加到结果中 result += chr(char_code) else: # 如果不是字母,则直接添加到结果中 result += char return result ``` 使用方法:调用caesar_cipher函数,传入明文和移动的位数即可得到密文。例如,要将字符串"hello, world!"右移3位加密,可以这样调用: ```python encrypted = caesar_cipher("hello, world!", 3) print(encrypted) # 输出:khoor, zruog! ``` 注意事项: - 移动的位数可以是正数或负数,表示向右或向左移动。 - 如果移动的位数超过了字母表的长度,可以使用取模运算来处理,例如,26对应的是没有加密的情况。 - 该加密方法比较简单,容易被破解,不适合加密重要信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值