Md5

破解md5的最有效方法?

  • October 11, 2019

如果您知道散列的結果,對於本範例,生成的散列為: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);

在 Google 上搜尋雜湊有時會立即給出明文。但是,這只適用於一些常見的雜湊值。

除此之外,沒有比蠻力更有效的方法了。即便如此,您也可以優化蠻力算法以使其更快。Hashcat可以在 GPU 上執行攻擊,從而可以並行執行許多雜湊計算。

引用自:https://crypto.stackexchange.com/questions/74972