Ben uzun zamandır tuzsuz MD5/SHA1 kullanmış, ama bu yöntem gerçekten güvenli değildir (ve zaman geçtikçe daha az güvenli oluyor) gibi bir tuzlu sha512 geçmek için karar verdi. Ayrıca ben birçok tekrarlamalar (örneğin 100) kullanarak karma aşağı nesil yavaşlatmak istiyorum.
Benim soru başında her yineleme ya da sadece bir kez tuz eklemek gerekir olup olmadığıdır. Burada iki olası kodları:
Append every time:
// some nice big salt
$salt = hash($algorithm, $salt);
// apply $algorithm $runs times for slowdown
while ($runs--) {
$string = hash($algorithm, $string . $salt, $raw);
}
return $string;
Append once:
// add some nice big salt
$string .= hash($algorithm, $salt);
// apply $algorithm $runs times for slowdown
while ($runs--) {
$string = hash($algorithm, $string, $raw);
}
return $string;
Ben ilk kez (append) ikinci sürümünü kullanmak istedim ama sonra tuzdan her zaman ekleyerek bazı komut dosyaları bulundu.
Yani, ben bunu her zaman ekleyerek karma bazı güç ekler olup olmadığını merak ediyorum. Örneğin, bir saldırgan basitçe sha512 100 kez yürütme daha hızlı şekilde olduğu bir 100timesSha512 işlevi oluşturmak için zekice bir yol bulduğunu mümkün olurdu?