boolean openssl_private_encrypt(string data, string encrypted, resource key, integer padding)
Функция openssl_private_encrypt позволяет зашифровать сообщение с помощью секретного ключа. Необязательный аргумент padding по умолчанию имеет значение OPENSSL_PKCS1_PADDING. Кроме того, можно задать константу OPENSSL_SSLV2 3_PADDING, OPENSSL_PKCS1_OAEP_PADDING или OPENSSL_NO_
PADDING.
boolean openssl_public_decrypt(string data, string decrypted, resource key, integer padding)
Функция openssl_public_decrypt (листинг 19.15) позволяет расшифровать сообщение с помощью открытого ключа. Необязательный аргумент padding по умолчанию имеет значение OPENSSL_PKCS1_PADDING. Кроме того, можно задать константу OPENSSL_SSLV2 3_PADDING, OPENSSL_PKCS1_OAEP_PADDING или
OPENSSL_NO_PADDING.
| Листинг 19.15. Функции openssl_private_encrypt и openssl_public_decrypt
<?php /*
** Промоделировать сообщение, имеющее подпись */
//кто- то зашифровал сообщение с помощью секретного ключа $message = "This message is genuine."; openssl_private_encrypt($message, $encrypted, array("file://example.pem", 'corephp')); //любой получатель может расшифровать его, воспользовавшись открытым ключом
openssl_public_decrypt($encrypted, $clear,
"file://example.crt"); print(" Расшифрованное сообщение: $clear<br>");
?>
boolean openssl_public_encrypt(string data, string encrypted, resource key, integer padding)
Функция openssl_public_encrypt позволяет зашифровать сообщение с помощью открытого ключа. Необязательный аргумент padding по умолчанию имеет значение OPENSSL_PKCS1_PADDING. Кроме того, можно задать константу OPENSSL_SSLV2 3_PADDING, OPENSSL_PKCS1_OAEP_PADDING или
OPENSSL_NO_PADDING.
integer openssl_seal(string opened_data, string sealed_data, array envelope, array public)
Функция openssl_seal (листинг 19.16) позволяет зашифровать данные с помощью ключа, сгенерированного случайным образом. PHP шифрует ключ с помощью всех заданных открытых ключей и помещает их в аргумент envelope. Это позволяет зашифровать данные и отправить их сразу нескольким получателям.
| Листинг 19.16. Функции openssl_open и openssl seal_
<?php
// зашифровать данные
openssl_seal("some data", $sealed, $envelope,
array('file://example.crt','file://example2.crt'));
//промоделировать расшифровку файла example.crt его владельцем
openssl_open($sealed, $opened, $envelope[0], array('file://example.pem', 'corephp'));
print($opened);
?>
boolean openssl_sign(string data, string signature, resource private_key)
Функция openssl_sign (листинг 19.17) генерирует подпись для указанных данных с использованием указанного ключа и размещает ее в аргументе signature.
| Листинг 19.17. Функции openssl_sign и openssl verify
<?php
$data = "some data"; // подписать данные openssl_sign($data, $signature,
array('file://example.pem', 'corephp')); // проверить подпись
if(1 == openssl_verify($data, $signature, 'file://example.crt'))
{
print(" Проверено");
}
else
{
print("Не проверено");
}
integer openssl_verify(string data, string signature, resource public_key)
Функция openssl_verify проверяет подпись на подписанных данных. В случае проверки она возвращает значение 1, если не проверено - 0, и -1 - в случае ошибки.
boolean openssl_x509_check_private_key(resource certificate, resource private_key)
Функция openssl_x509_check_private_key проверяет принадлежность заданного ключа указанному сертификату.
boolean openssl_x509_checkpurpose(resource certificate, integer purpose, array ca, string untrusted)
Функция openssl_x509_checkpurpose проверяет, можно ли использовать данный сертификат с намеченной целью. В случае ошибки она возвращает значение -1. Для определения цели использования сертификата можно воспользоваться данными из табл. 19.21. Аргумент ca задает массив доверительных бюро сертификации. Необязательный аргумент untrusted задает путь к файлу с перечнем сертификатов, которым доверять нельзя.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Разное:Apache,IMAP,MnoGoSearch,OpenSSL. Часть Двеннадцатая.
29-04-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Разное:Apache,IMAP,MnoGoSearch,OpenSSL. Часть Одиннадцатая. | PHP. Разное:Apache,IMAP,MnoGoSearch,OpenSSL. Часть Триннадцатая. |