(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
openssl_seal — Veriyi mühürler (şifreler)
$veri
,&$mühürlü_veri
,&$zarf_anahtarları
,$genel_anahtar
,$algoritma
,&$ilklendirme_yöneyi
= null
Rasgele üretilmiş bir gizli anahtarla verilen algoritma
'yı kullanarak veri
yi mühürler (şifreler) ve mühürlü_veri
bağımsız değişkeninde döndürür. Gizli anahtar, genel_anahtar
içindeki tanımlayıcılarla ilişkili genel anahtarlarla şifrelenir ve zarf_anahtarları
dizisinde döndürülür. Bu, bir kişinin birden fazla alıcıya mühürlü veri gönderebileceği anlamına gelir (genel anahtarlarının elinde olması şartıyla). Her alıcının, hem mühürlü veriyi hem de alıcının genel anahtarıyla şifrelenmiş zarf anahtarını alması gerekir.
veri
Mühürlenecek veri.
mühürlü_veri
Mühürlenen veri bu bağımsız değişkene konur.
zarf_anahtarları
Genel anahtarlarla şirelenmiş gizli anahtarların döndürüldüğü dizi.
genel_anahtar
Genel anahtarları içeren OpenSSLAsymmetricKey örnekleri dizisi.
algoritma
Şifreleme yöntemi.
Öntanımlı değerin ('RC4'
) günenilmez olduğu varsayılır. Güvenilir bir şifreleme yöntemi belirtilmesi şiddetle önerilir. method.
ilklendirme_yöneyi
İlklendirme yöneyi.
İşlem başarılı olursa mühürlü veri mühürlü_veri
bağımsız değişkenine, zarf mühürleri zarf_anahtarları
bağımsız değişkenine konup mühürlü verinin uzunluğu döndürülür. Hata oluşursa false
döner.
Sürüm: | Açıklama |
---|---|
8.0.0 | genel_anahtar artık OpenSSLAsymmetricKey veya OpenSSLCertificate örneği kabul ediyor; evvelce, OpenSSL key veya OpenSSL X.509 özkaynağı kabul edilirdi. |
8.0.0 | algoritma artık seçimlik değil. |
8.0.0 | ilklendirme_yöneyi artık null olabiliyor. |
Örnek 1 - openssl_seal() örneği
<?php
// $veri'nin mühürlenecek veriyi içerdiği varsayılıyor.
// alıcıların genel anahtarlarını alıp hazırlayalım
$dt = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$sert = fread($dt, 8192);
fclose($dt);
$ga1 = openssl_get_publickey($sert);
// İşlemi ikinci alıcı için yineleyelim.
$dt = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$sert = fread($dt, 8192);
fclose($dt);
$ga2 = openssl_get_publickey($sert);
// Veriyi mühürleyelim. $muhurlu_veri sadece $ga1 ve $ga2'nin sahipleri
// tarafından sırasıyla $muhurler[0] ve $muhurler[1] anahtarları ile
// çözülebilir.
openssl_seal($data, $muhurlu_veri, $muhurler, array($ga1, $ga2));
// anahtar belleklerini serbest bırakalım
openssl_free_key($ga1);
openssl_free_key($ga2);
?>