Класс Security
Библиотека безопасности содержит служебные методы, связанные с безопасностью
Краткое описание свойств
- Реализация криптографического алгоритма для использования.
object - Соль HMAC для использования в процедурах шифрования и дешифрования
string -
stringМетод хеширования по умолчанию. Если параметр
$typeдляSecurity::hash()не указан, используется это значение. По умолчанию — 'sha1'.
Краткое описание методов
- Проверка ключа шифрования на правильную длину.
- Сравнение, устойчивое к атакам с временным анализом, предпочитающее собственные реализации PHP.
- Дешифровка значения с использованием AES-256.
- Шифрование значения с использованием AES-256.
- Получение реализации криптографического алгоритма на основе загруженных расширений.
- Генерация хеша из строки с использованием заданного метода.
- Аналогично randomBytes(), но не криптографически безопасен.
- Получение случайных байтов из надёжного источника.
- Шифрует/дешифрует текст с использованием заданного ключа методом rijndael.
-
Получает или устанавливает соль HMAC, которая используется для процедур шифрования/дешифрования.
-
Устанавливает метод хеширования по умолчанию для объекта Security. Это влияет на все объекты, использующие Security::hash().
Подробное описание методов
_checkKey()source protected static
_checkKey( string $key , string $method )
Проверка ключа шифрования на правильную длину.
Параметры
- string
$key - Ключ для проверки.
- string
$method - Метод, для которого проверяется ключ.
Исключения
InvalidArgumentExceptionКогда длина ключа не 256 бит/32 байта
_constantEquals()source protected static
_constantEquals( string $hmac , string $compare )
Сравнение, устойчивое к атакам с временным анализом, предпочитающее собственные реализации PHP.
Параметры
- string
$hmac - Хеш из зашифрованного текста, который дешифруется.
- string
$compare - Сравниваемый хеш.
Возвращаемое значение
booleanСм. также
https://github.com/resonantcore/php-future/decrypt()source public static
decrypt( string $cipher , string $key , string|null $hmacSalt null )
Дешифровка значения с использованием AES-256.
Параметры
- string
$cipher - Зашифрованный текст для дешифровки.
- string
$key - Ключ длиной 256 бит/32 байта, используемый в качестве ключа шифра.
- string|null
$hmacSaltнеобязательно null - Соль для процесса HMAC. Оставить null, чтобы использовать Security.salt.
Возвращаемое значение
stringДешифрованные данные. Любые заключительные нулевые байты будут удалены.
Исключения
InvalidArgumentExceptionПри неверных данных или ключе.
encrypt()source public static
encrypt( string $plain , string $key , string|null $hmacSalt null )
Шифрование значения с использованием AES-256.
Примечание Вы не можете правильно зашифровать/расшифровать данные с заключительными нулевыми байтами. Любые заключительные нулевые байты будут удалены при дешифровке из-за того, как PHP заполняет сообщения нулями перед шифрованием.
Параметры
- string
$plain - Значение для шифрования.
- string
$key - Ключ длиной 256 бит/32 байта, используемый в качестве ключа шифра.
- string|null
$hmacSaltнеобязательно null - Соль для процесса HMAC. Оставить null, чтобы использовать Security.salt.
Возвращаемое значение
stringЗашифрованные данные.
Исключения
InvalidArgumentExceptionПри неверных данных или ключе.
engine()source public static
engine( object|null $instance null )
Получение реализации криптографического алгоритма на основе загруженных расширений.
Вы можете использовать этот метод для принудительного выбора между mcrypt/openssl/пользовательскими реализациями.
Параметры
- object|null
$instanceнеобязательно null - Экземпляр криптографического алгоритма для использования.
Возвращаемое значение
objectЭкземпляр криптографического алгоритма.
Исключения
InvalidArgumentExceptionКогда нет совместимого расширения криптографического алгоритма.
hash()source public static
hash( string $string , string|null $type null , mixed $salt false )
Генерация хеша из строки с использованием заданного метода.
Параметры
- string
$string - Строка для хеширования
- string|null
$typeнеобязательно null Алгоритм хеширования (например, sha1, sha256 и т. д.). Может быть любым допустимым алгоритмом, включённым в список, возвращаемый функцией hash_algos(). Если значение не передано, используется тип, указанный в
Security::$hashType.- mixed
$saltнеобязательно false Если true, автоматически добавляет соль приложения к $string (Security.salt).
Возвращаемое значение
stringХеш
Ссылка
http://book.cakephp.org/3.0/en/core-libraries/security.html#hashing-datainsecureRandomBytes()source public static
insecureRandomBytes( integer $length )
Аналогично randomBytes(), но не криптографически безопасен.
Параметры
- integer
$length - Количество байтов, которое требуется.
Возвращаемое значение
stringСлучайные байты в двоичном формате.
См. также
\Cake\Utility\Security::randomBytes()randomBytes()source public static
randomBytes( integer $length )
Получение случайных байтов из надёжного источника.
Этот метод перейдёт к небезопасному источнику и выведет предупреждение, если не сможет найти безопасный источник случайных данных.
Параметры
- integer
$length - Количество байтов, которое требуется.
Возвращаемое значение
stringСлучайные байты в двоичном формате.
rijndael()source public static
rijndael( string $text , string $key , string $operation )
Шифрует/дешифрует текст с использованием заданного ключа методом rijndael.
Параметры
- string
$text - Зашифрованная строка для дешифровки, обычная строка для шифрования
- string
$key - Ключ, используемый в качестве ключа шифрования для зашифрованных данных.
- string
$operation - Операция, выполняемая, шифрование или дешифрование
Возвращаемое значение
stringЗашифрованная/дешифрованная строка
Исключения
InvalidArgumentExceptionПри возникновении ошибок.
salt()source public static
salt( string|null $salt null )
Получает или задаёт соль HMAC для использования в криптографических операциях шифрования/дешифрования.
Параметры
- string|null
$saltнеобязательно null - Соль для использования в криптографических операциях шифрования. Если null, возвращает текущую соль.
Возвращает
stringТекущая настроенная соль
setHash()source public static
setHash( string $hash )
Устанавливает метод хэширования по умолчанию для объекта Security. Это влияет на все объекты, использующие Security::hash().
Параметры
- string
$hash - Метод для использования (sha1/sha256/md5 и т.д.)
См. также
\Cake\Utility\Security::hash()Подробное описание свойств
$_saltsource
protected static string
Соль HMAC для использования в криптографических операциях шифрования и дешифрования
$hashTypesource
public static string
Метод хэширования по умолчанию. Если параметр $type для Security::hash() не указан, используется это значение. По умолчанию равно 'sha1'.
'sha1'
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/3.2/class-Cake.Utility.Security.html