hash_equals

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

hash_equalsZamanlama saldırısı güvenli dize karşılaştırması

Açıklama

hash_equals(string $bilinen_dzg, string $kullanıcı_dzg): bool

İki dizgenin uzunluklarını aynı zamanı kullanarak karşılaştırır. Uzunluklar farklıysa hemen false döner.

Bu işlev, zamanlama saldırılarını azaltmak için kullanılmalıdır; Örneğin, crypt() parola aşlarını denerken.

Bağımsız Değişkenler

bilinen_dzg

Karşılaştırılacak dizge

kullanıcı_dzg

Kullanıcının sağladığı dizge

Dönen Değerler

İki dizge benzerse true yoksa false döner.

Örnekler

Örnek 1 - hash_equals() örneği

<?php
$umulan
= crypt('12345', '$2a$07$usesomesillystringforsalt$');
$dogru = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$yanlis = crypt('apple', '$2a$07$usesomesillystringforsalt$');

var_dump(hash_equals($umulan, $dogru));
var_dump(hash_equals($umulan, $yanlis));
?>

Yukarıdaki örneğin çıktısı:

bool(true)
bool(false)

Notlar

Bilginize:

Başarılı bir karşılaştırma için verilen dizgeler eşit uzunlukta olmalıdır. Uzunluklar farklıysa hemen false döner. Zamanlama saldırısı durumunda bilinen dizgenin uzunluğu değişebilir.

Bilginize:

Kullanıcını sağladığı dizgeyi ilk değil ikinci bağımsız değişkende belirtmek önemlidir.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top