| ||||||||||
LV. Функции шифровки McryptЭто интерфейс с библиотекой mcrypt, который поддерживает широкий набор алгоритмов, таких как DES, TripleDES, Blowfish (по умолчанию), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 и режимов шифровки GOST в CBC, OFB, CFB и ECB. Дополнительно он поддерживает RC6 и IDEA, которые считаются "non-free". Mcrypt можно использовать для шифровки и дешифровки вышеприведёнными шифрами. Если вы связались с библиотекой libmcrypt-2.2.x, четыре важные команды mcrypt (mcrypt_cfb(), mcrypt_cbc(), mcrypt_ecb() и mcrypt_ofb()) могут оперировать в двух режимах, которые называются MCRYPT_ENCRYPT и MCRYPT_DECRYPT, соответственно. Это пример даст данные, зашифрованные как строка в $encrypted_data. Если связаны с библиотекой libmcrypt 2.4.x или 2.5.x, эти функции также будут доступны, но рекомендуется использовать продвинутые функции.
Это пример даст данные, зашифрованные как строка в$encrypted_data. Полный пример см. в описании mcrypt_module_open(). ТребованияЭти функции работают с использованием mcrypt. Если вы связаны с библиотекой libmcrypt 2.4.x или выше, поддерживаются следующие дополнительные алгоритмы блока: CAST, LOKI97, RIJNDAEL, SAFERPLUS, SERPENT, и шифровальщики потока: ENIGMA (crypt), PANAMA, RC4 и WAKE. С библиотекой libmcrypt 2.4.x или выше доступен также режим шифровки nOFB. УстановкаЗагрузите libmcrypt-x.x.tar.gz отсюда и следуйте инструкциям по установке. Вам необходимо скомпилировать PHP с параметром --with-mcrypt, чтобы подключить данное расширение. Убедитесь, что вы компилируете libmcrypt с опцией --disable-posix-threads. Типы ресурсовЭто расширение не определяет никакие типы ресурсов. Предопределённые константыMcrypt может работать с четырьмя режимами шифровки (CBC, OFB, CFB и ECB). Если связь имеется с библиотекой libmcrypt-2.4.x или выше, эти функции могут также работать с блок-режимом шифровки nOFB и в режиме STREAM. Ниже вы найдёте список всех поддерживаемых режимов шифровки с константами, определёнными для данного режима. Более полную справку и обсуждение вы найдёте в Applied Cryptography by Schneier (ISBN 0-471-11709-9).
Вот список шифров, которые в настоящее время поддерживаются расширением mcrypt. Полны список см. в определениях в конце файла mcrypt.h. Общее правило для mcrypt-2.2.x API таково: вы можете получить доступ к шифру из PHP с помощью MCRYPT_ciphername. С libmcrypt-2.4.x и libmcrypt-2.5.x API эти константы также работают, но можно специфицировать имя шифра как строку с вызовом mcrypt_module_open().
Вы обязаны (в режимах CFB и OFB) или можете (в режиме CBC) поддерживать вектор инициализации /initialization vector (IV) для соответствующей функции шифровки. Этот IV обязан быть уникальным и обязан быть тем же самым при дешифровке/шифровке. Для данных, которые хранятся в шифрованном виде, вы можете получить вывод функции индекса, под которым данные хранятся (например, MD5-ключ имени файла). Альтернативно вы можете передать IV вместе с шифрованными данными (см. в Главе 9.3 в Applied Cryptography by Schneier (ISBN 0-471-11709-9) обсуждение этого вопроса).
| ||||||||||
|