gpt4 book ai didi

c++ - 这个加解密算法哪里出错了?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:04 25 4
gpt4 key购买 nike

我一直在研究 C++ 中的基本字符串加密/解密算法(来源在这里:http://pastebin.com/MLnn8D82)

我遇到的问题是它没有正确解密。加密方程为:

strInput[nPos]=(((strInput[nPos])+(nPos+1))*2);

解密方程为:

strPassword[nPos]=(((strPassword[nPos])-(nPos+1))/2);

当我尝试仅使用加法/减法运算符时,它运行良好。但是当我乘以加密并除以解密时,我输出了一个看似随机的字符串。

起初我认为可能是因为密码在解密之前被写入文件并从文件中检索,但我尝试直接从主函数输出它,结果相同。

字符串相除/相乘有问题吗?它以前适用于 C 风格(字符数组)字符串,但我想这可能会有所不同。

感谢任何帮助!

编辑:感谢您到目前为止的回答。我知道这不安全,我不应该使用它;我这样做只是为了练习。

此外,这不是内存问题。我试过在加密阶段除法而不是乘法,但我仍然得到一个随机字符串而不是原始字符串。

最佳答案

很可能您的乘法对某些字符溢出了,这意味着您的除法将永远无法恢复原来的结果。

附带说明一下,您为什么要自己编写加密算法?如果您打算将它用于任何实际用途,而不仅仅是学习,那么最好使用由密码学专家编写的已知安全的库。类似于 Keyczar这将是一个好主意,因为它被设计成很难出错(在涉及密码学时,这很容易以非常微妙的方式做到)。

关于c++ - 这个加解密算法哪里出错了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9488926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com