PHP 7.4.22 Released!

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.

Değiştirgeler

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.

Hatalar/İstisnalar

Aktarılan değiştirgelerden biri dizge değilse E_WARNING seviyesinde bir ileti çıktılanır.

Ö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 değiştirgede belirtmek önemlidir.

add a note add a note

User Contributed Notes

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