如果您知道哈希的结果,在本例中,结果散列为:ec664d1d65fd8a58c59b337b11c37a4d
你也知道哈希是这样做的:
const salt = "asdjbsdhal"
const password = unknown; // only thing we don't know
const hash = md5(salt + password);所以我们知道md5(salt + password) == "ec664d1d65fd8a58c59b337b11c37a4d"。
有比暴力更有效的破解密码的方法吗?我现在想用的是:
const md5 = require("md5");
const expectedHash = "ec664d1d65fd8a58c59b337b11c37a4d";
const salt = "asdjbsdhal";
let nonce = 0;
let result = "";
while (result != expectedHash) {
nonce++;
result = md5(salt + nonce);
}
console.log("Password: ", nonce);发布于 2019-10-10 06:52:55
搜索Google上的散列有时会立即给出明文。但是,这只适用于一些常见的散列值。
除此之外,没有比暴力更有效的方法了。即便如此,您也可以优化蛮力算法,使其更快。哈希猫可以在GPU上运行攻击,从而可以并行执行许多散列计算。
https://crypto.stackexchange.com/questions/74972
复制相似问题