它基本上只使用五个字母密码的值,并将数字归因于变量。我要问的是理论上,假设您将其设置为每次说的 20 个字母的密码,这有多容易破解。 代码开始 代码 结束
1 回答
4
从根本上说,您在此处提供的加密方案归结为以下算法问题:
给定一个目标总和和每个包含 K 个元素的 N 个列表,从每个列表中选择一个元素,使得元素的总和是目标总和。
从理论上讲,蛮力解决方案是指数时间,但我认为它的平均复杂度要低得多,因为我们可以对列表进行排序并在超出限制时缩短搜索时间。这是假设没有负数,但似乎没有。
也就是说,这可以等效于0-1 背包问题,可以在 O(N*K*sum) 时间内解决。即使这不是最佳方法,但对于任何严肃的加密目的(如任何自制的加密方法)来说,这肯定太快了。如果这不仅仅是用作玩具密码,请使用安全的加密哈希函数(并且不要将身份验证放在前端)。
于 2021-07-14T04:58:13.783 回答