(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.1.0)
Phar::setSignatureAlgorithm β Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡ phar-Π°ΡΡ ΠΈΠ²Π° ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Phar ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ
phar.readonlyΠ² ΡΠ°ΠΉΠ»Π΅ php.ini Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅0, ΠΈΠ½Π°ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ±ΡΠΎΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ PharException.
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡ phar-Π°ΡΡ
ΠΈΠ²Π° ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Π΅Π³ΠΎ.
ΠΠΎΡΡΡΠΏΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡ: Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512 ΠΈ Phar::OPENSSL.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ
phar-Π°ΡΡ
ΠΈΠ²ΠΎΠ² ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ SHA1.
ΠΡΡ
ΠΈΠ²Ρ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ tar ΠΈΠ»ΠΈ zip
(ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° PharData) Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ
ΡΠ²Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Phar::setSignatureAlgorithm() ΠΏΠΎΠ΄ΠΏΠΈΡΡ.
algo
ΠΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΠ½ΡΡΠ°Π½Ρ: Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512 ΠΈΠ»ΠΈ Phar::OPENSSL
privateKeyΠ‘Π΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ OpenSSL, ΠΈΠ·Π²Π»Π΅ΡΡΠ½Π½ΡΠΉ ΠΈΠ· ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, Π»ΠΈΠ±ΠΎ ΡΠ°ΠΉΠ» Ρ ΠΊΠ»ΡΡΠΎΠΌ OpenSSL:
<?php
$private = openssl_get_privatekey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($private, $pkey);
$p->setSignatureAlgorithm(Phar::OPENSSL, $pkey);
?>Π€ΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ UnexpectedValueException ΠΏΡΠΈ Π»ΡΠ±ΡΡ ΠΎΡΠΈΠ±ΠΊΠ°Ρ , ΠΊΡΠΎΠΌΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ Π·Π°ΠΏΠΈΡΠΈ Π½Π° Π΄ΠΈΡΠΊ. ΠΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π·Π°ΠΏΠΈΡΠΈ Π½Π° Π΄ΠΈΡΠΊ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ PharException.
| ΠΠ΅ΡΡΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
| 8.0.0 |
privateKey ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ null.
|