(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)
hash_init — Ardışık aşlama bağlamını ilklendirir
$algo
,$sabitler
= 0,$anahtar
= "",$seçenekler
= []Ardışık aşlama bağlamını ilklendirir.
algo
Aşlama algoritmasının ismi (örn, "sha256"
).
Desteklenen algoritmaların listesi
hash_algos() işlevinde bulunabilir.
Bilginize:
HASH_HMAC
seçeneği belirtilmişse kriptografik olmayan aş işlevlerine izin verilmez.
sabitler
İleti aşının üretimi için isteğe bağlı sabitler. Şimdilik tek bir
sabit desteklenmektedir: HASH_HMAC
.
Bu sabit belirtildiği takdirde, anahtar
bağımsız değişkeni de belirtilmelidir.
anahtar
sabitler
bağımsız değişkeninde
HASH_HMAC
belirtildiği takdirde, HMAC aşlama
yöntemi ile kullanılacak paylaşımlı gizli anahtar.
seçenekler
Çeşitli aşlama algoritmaları için seçenekleri içeren dizi. Şimdilik
sadece, MurmurHash türevleri "seed"
bağımsız değişkenini desteklemektedir.
hash_update(), hash_update_stream(), hash_update_file(), ve hash_final() işlevlerinde kullanılmak üzere bir Aşlama Bağlamı özkaynağı döndürür.
algo
bilinmiyorsa veya kriptografik olmayan bir aşlama
algoritmasıysa bir ValueError istisnası oluşur.
Sürüm: | Açıklama |
---|---|
8.1.0 | seçenekler bağımsız değişkeni eklendi. |
8.0.0 |
Artık algo bilinmiyorsa veya kriptografik
olmayan bir aşlama algoritmasıysa ya da anahtar
boşsa ValueError istisnası oluşuyor. Evvelce
false döner ve bir E_WARNING iletisi
çıktılanırdı.
|
7.2.0 |
Kriptografik olmayan aş işlevlerinin (adler32, crc32, crc32b, fnv132,
fnv1a32, fnv164, fnv1a64, joaat) ve HASH_HMAC
sabitinin kullanımı iptal edildi.
|
7.2.0 | resource türünde bir değer yerine HashContext kabul ediliyor. |
Örnek 1 - Ardışık aşlama örneği
<?php
$hash = hash('sha256', 'Pijamalı hasta yağız şoföre çabucak güvendi.');
$ctx = hash_init('sha256');
hash_update($ctx, 'Pijamalı hasta ');
hash_update($ctx, 'yağız şoföre çabucak güvendi.');
$incremental_hash = hash_final($ctx);
echo $incremental_hash, PHP_EOL;
var_dump($hash === $incremental_hash);
?>
Yukarıdaki örneğin çıktısı:
04eb8190a875ba9b6d05edbb0873e47ad41c48c2fac96e404040568868f3f20d bool(true)