当前位置: 首页 > 知识库问答 >
问题:

凯撒加解密C++

刘英彦
2023-03-14

我想知道如何限制加密的ASCII范围从32-126。

int value = (value-32+shift)%95+32 //value is the current ascii value of a                 
                                   //character
                                   //the first shift is given by the user with regards 
                                   //to how many shifts he wants to do to the right

这个是用来解密的

int value = (value-32-shift)%95+32

我的加密工作得很好(当我引用解密函数时),但我的解密并不像它应该的那样工作。

额外注意:我们只需要在编码时进行右移,给出一个字符串供整个程序加密和解密(“这是C++”)

Give shift: 3
Wklv#lv#F..
DECODE 
Wklv#lv#F..  //must be 'THIS is C++'
ENCODE       //shift=15
This is C++  //must be 'cwx#/x#/R::'  
DECODE 
EYZdpZdp4{{  //must be 'THIS is C++'
ENCODE      //shift=66
cwx#/x#/R::  //must be "8LMWbMWb'mm"
DECODE 
This is C++
ENCODE       //shift=94
cwx#/x#/R::  //must be 'SGHR~hr~B**'
DECODE 
This is C++

注意:在添加更多代码描述的过程中

共有1个答案

咸亦
2023-03-14

你的问题在带负值的模运算符中解释了。我不确定这是不是精确的复制品。问题是解码像“!”这样的密码字符有一个以上的移位(说“3”)

int value = (value-32-shift)%95+32
          = ('!'-32-3)%95+32
          = (33-32-3)%95+32
          = (-2)%95 + 32
          = -2 + 32
          = 30

哎呀。您需要使用:

int value = (value-32+(95-shift))%95+32
 类似资料:
  • 我需要编写一个python、hacker和wow这些单词的加密文本,并且使用不包括使用RAW_INPUT的python中的凯撒密码,距离为3。这是我到目前为止,但我不断得到一个错误消息,我不知道如何修复它。

  • 首先,我是编程的新手,所以要温柔。而且,我一直在做这个任务,但没有任何结果。任务是创建一个凯撒密码程序,它加密或解密一个段落最多100个字符。实际上是两个独立的实验室。第一个实验是加密,然后第二个实验是解密。一旦我弄清楚了如何创建加密程序,解密程序应该很简单,因为我可以只进行语义更改来解密而不是加密。无论如何,这是我到目前为止的代码。它通过了他们给我们的5个测试中的4个,但出于某种原因,有一个测试

  • 问题内容: 我通过java进行了凯撒密码,它可以运行,但是在用户输入密钥后不对任何内容进行加密! 这是我的代码 跑: 问题答案: 使用效率不是很高…您可以对值进行整数运算以获得其索引。 我在代码中添加了注释以解释更多信息,但这就是我想出的。 输出应该是这样的

  • 我目前正在学习如何使用Python中的凯撒密码方法进行加密/解密。我已经研究了如何加密'14:00/船只就位',以接收'7,21,18,_6,21,22,3,6,_14,5,18,_22,1,_3,2,6,22,7,22,2,1',但正在努力如何编写解密代码。具体地说,我不确定如何使用if/else语句正确地反转原始加密,以及如何将数字转换回字母。每封信将根据小时(班次)的变化。 解密代码

  • 示例:返回。如果给定的整数值小于0或大于26,则应返回空字符串。 我的问题是,作为回报,它只给我真或假。如何解决这个问题:该方法应该返回一个字符串,其中每个字符都是根据指定的整数值移动的。