求一个解密算法 请大家帮帮忙
加密算法如下:
int[] code = new int[16];
code[0] = 58;
code[1] = 50;
code[2] = 42;
code[3] = 34;
code[4] = 26;
code[5] = 18;
code[6] = 10;
code[7] = 2;
code[8] = 60;
code[9] = 52;
code[10] = 44;
code[11] = 36;
code[12] = 28;
code[13] = 20;
code[14] = 12;
code[15] = 4;
int pwdcode = 0;
char[] pwd = this.txtUserPWd.Text.Trim().ToCharArray();
for (int i = 0; i <= pwd.Length - 1 && i < 16; i++)
{
pwdcode += (int)pwd[i] * code[i];
}
this.txtStorePWD.Text = pwdcode.ToString();
现在需要逆向,通过给定的数值得到一个字符串,没什么思路啊
[解决办法]
虽然对加密解密不熟,不过觉得code[]应该是一个域里面的数据,而且在这个域内16个值线性无关。
[解决办法]
加密一般都不逆向操作
这个加密算法也不是一一映射
先用txtUserPWd允许的最小的字符计算出pwdcode ,和给定的数值作差
剩余的值再用贪心算法应该能求出一个解来吧,毕竟code[7] = 2;
[解决办法]
我觉着不行吧?
因为转换以后,就是一个多元一次函数的形式了,
[解决办法]
没看懂ls
------解决方案--------------------
不可逆