当偏移量为 11 或更大时,解密 Caesar 密码将失败
Decrypting Caesar cipher fails when offset is 11 or more
我正在做一个解密程序。我一直在寻找并试图弄清楚这一点,但我什么也没看到。因此,当我解密例如9adwrqxvni0348&4#9
时,它很好,但是当我的偏移量为 11
或更多时,它会解密除最后一个字符之外的所有字符。无论过去11
的偏移量是多少,最后一个字符都是相同的。我刚才把所有的字母都塞进去了,它们起作用了。它只是最后一个数字字符,在 11
之后不起作用。
for (int count = 0; count < length; count++)
{
if (msg[count] >= 'a' && msg[count] <= 'z')//Letter wraping
{
dmsg += ((msg[count] - 'a' - offset + 26) % 26) + 'a';
}
else if (msg[count] >= '0' && msg[count] <= '9')//Number wraping
{
dmsg += (abs(msg[count] - '0' - offset + 10) % 10) + '0';
}
}
在我看来
,当偏移量大于 10 时,添加 10 不会在任何等于或小于偏移量与 10 之差的数字上创建适当的正值。 一种解决方法是修改 10 个偏移量:
dmsg += ( abs( msg[count] - '0' - ( offset % 10 ) + 10 ) % 10 ) + '0';
相关文章:
- AES加密到解密未正确输出
- 为什么这不是解密
- 通过 Openssl 命令行加密,通过 c++ 解密
- OpenSSL 解密功能无法正常工作
- 仿射密码解密,输出大小写不同
- 将加密消息从 php 发送到 C++ 应用程序,然后使用 CryptoPP 进行解密
- 私钥解密代码使用公共接口说明符到 BSAFE 库 v6.0?
- POCO C++加密/解密
- 从加密项目向量中解密任意选择的元素会导致无效的 PKCS #7 块错误
- 尝试从 Visual Studios C++ 中的加密字符串输出解密字符串时出现逻辑错误
- OpenSSL RSA 解密随机失败 C/C++
- 压缩天然气.AES.错误解密(可能加密)的文件
- C++ - 从文件解密字符串
- C++ - 如何从上到下制作 4x4 矩阵和 cout 列(需要解密字符串)
- 运行密钥密码解密知道密钥?
- 如何在c ++中使用XOR解密文件?
- 如何制作一个程序,它使用特定单词加密和解密消息?
- 基本加密和解密方法不起作用 C++ 11.
- 当偏移量为 11 或更大时,解密 Caesar 密码将失败
- 尝试多个密钥进行 Caesar 密码解密从密钥 9 而不是 1 开始