我一直在用C++编写基本的字符串加密/解密算法(源代码在这里:http://pastebin.com/MLnn8D82)
我遇到的问题是它没有正确解密.加密方程是:
strInput[nPos]=(((strInput[nPos])+(nPos+1))*2);
Run Code Online (Sandbox Code Playgroud)
解密方程是:
strPassword[nPos]=(((strPassword[nPos])-(nPos+1))/2);
Run Code Online (Sandbox Code Playgroud)
当我只使用加法/减法运算符进行尝试时,它可以完美地运行.但是当我在加密中加倍并在解密中进行除法时,我得到一个看似随机的字符串输出.
起初我以为可能是因为在解密之前密码被写入文件并从文件中检索,但我尝试直接从main函数输出密码,结果我得到了相同的结果.
分割/乘法字符串有问题吗?以前使用C风格(字符串数组)字符串,但我想这可能会有所不同.
任何帮助表示赞赏!
编辑:感谢您的答案到目前为止.我知道这不安全,我不应该使用它; 我只是为了练习而做.
而且,这不是内存问题.我已经尝试在加密阶段划分而不是乘法,但我仍然得到一个随机字符串而不是原始字符串.