Класс Безопасность
Библиотека безопасности содержит служебные методы, относящиеся к безопасности
Авторские права: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: MIT Лицензия
Расположение: Cake/Utility/Security.php
Краткое описание свойств
- Значение по умолчанию для сложности
string - Метод хеширования по умолчанию
string
Краткое описание методов
- Проверка ключа шифрования на соответствие длине.
- Одностороннее шифрование с использованием функции php crypt(). Для использования хеширования Blowfish см.
Security::hash() -
Генерирует псевдослучайную соль, подходящую для использования с функцией php crypt(). Длина соли не должна превышать 27. Соль будет состоять из [./0-9A-Za-z]{$length}.
- Применяет XOR-шифрование к строке $text.
- Расшифровка значения с использованием AES-256.
- Шифрование значения с использованием AES-256.
- Генерирует хеш авторизации.
- Создаёт хеш из строки, используя указанный метод или по умолчанию.
- Получить разрешенные минуты бездействия на основе уровня безопасности.
- Получить случайные байты из безопасного источника.
- Шифрует/расшифровывает текст, используя указанный ключ методом rijndael.
- Устанавливает стоимость для метода хеширования Blowfish.
-
Устанавливает метод хеширования по умолчанию для объекта Security. Это влияет на все объекты, использующие Security::hash().
- Проверка хеша авторизации.
Подробное описание методов
_checkKey()source protected static
_checkKey( string $key , string $method )
Проверка ключа шифрования на соответствие длине.
Параметры
- строка
$key - Ключ для проверки.
- строка
$method - Метод, для которого проверяется ключ.
Исключения
CakeExceptionПри длине ключа не 256 бит/32 байта
_crypt()source protected static
_crypt( string $password , mixed $salt false )
Одностороннее шифрование с использованием функции php crypt(). Для использования хеширования Blowfish см. Security::hash()
Параметры
- строка
$password - Строка, подлежащая шифрованию.
- смешанный
$saltнеобязательно false - false для генерации новой соли или существующая соль.
Возвращаемое значение
строкаХешированная строка или пустая строка при ошибке.
_salt()source protected static
_salt( integer $length 22 )
Генерирует псевдослучайную соль, подходящую для использования с функцией php crypt(). Длина соли не должна превышать 27. Соль будет состоять из [./0-9A-Za-z]{$length}.
Параметры
- целое число
$lengthнеобязательно 22 - Длина возвращаемой соли
Возвращаемое значение
строкаСгенерированная соль
cipher()source public static
cipher( string $text , string $key )
Применяет XOR-шифрование к строке $text.
Примечание Этот метод не является криптографически стойким и не должен использоваться для конфиденциальных данных. Кроме того, этот метод не работает в средах, где включен suhosin.
Вместо этого следует использовать Security::rijndael(), когда требуется надежное шифрование.
Устарело
3.0.0 Будет удалено в 3.0.Параметры
- строка
$text - Зашифрованная строка для расшифровки, обычная строка для шифрования
- строка
$key - Ключ для использования
Возвращаемое значение
строкаЗашифрованная/расшифрованная строка
decrypt()source public static
decrypt( string $cipher , string $key , string $hmacSalt null )
Расшифровка значения с использованием AES-256.
Параметры
- строка
$cipher - Зашифрованный текст для расшифровки.
- строка
$key - Ключ длиной 256 бит/32 байта для использования в качестве ключа шифрования.
- строка
$hmacSaltнеобязательно null - Соль для использования в процессе HMAC. Оставьте null для использования Security.salt.
Возвращаемое значение
строкаРасшифрованные данные. Любые заключительные байты null будут удалены.
Исключения
CakeExceptionПри неверных данных или ключе.
encrypt()source public static
encrypt( string $plain , string $key , string $hmacSalt null )
Шифрование значения с использованием AES-256.
Предупреждение Вы не можете правильно шифровать/расшифровывать данные с заключительным нулевым байтом. Любые заключительные нулевые байты будут удалены при расшифровке из-за того, как PHP дополняет сообщения нулями перед шифрованием.
Параметры
- строка
$plain - Значение для шифрования.
- строка
$key - Ключ длиной 256 бит/32 байта для использования в качестве ключа шифрования.
- строка
$hmacSaltнеобязательно null - Соль для использования в процессе HMAC. Оставьте null для использования Security.salt.
Возвращаемое значение
строкаЗашифрованные данные.
Исключения
CakeExceptionПри неверных данных или ключе.
generateAuthKey()source public static
generateAuthKey( )
Генерирует хеш авторизации.
Устарело
2.8.1 Этот метод был удален в 3.0.0Возвращаемое значение
строкаХеш
hash()source public static
hash( string $string , string $type null , mixed $salt false )
Создаёт хеш из строки, используя указанный метод или по умолчанию.
Использование Blowfish
- Создание хешей: не передавайте соль. Cake обрабатывает создание соли для вас, гарантируя, что каждый хешированный пароль будет иметь уникальную соль.
- Сравнение хешей: просто передайте исходно хешированный пароль в качестве соли. Соль добавляется к хешу, и PHP обрабатывает разбор автоматически. Для удобства доступен класс
BlowfishPasswordHasherдля использования с AuthComponent. - НЕ используйте постоянную соль для Blowfish!
Создание хеша blowfish/bcrypt:
$hash = Security::hash($password, 'blowfish');
Параметры
- строка
$string - Строка для хеширования
- строка
$typeнеобязательно null - Метод для использования (sha1/sha256/md5/blowfish)
- смешанный
$saltнеобязательно false Если true, автоматически добавляет значение соли приложения к $string (Security.salt). Если вы используете Blowfish, соль должна быть false или ранее сгенерированная соль.
Возвращаемое значение
строкаХеш
Ссылка
https://book.cakephp.org/2.0/en/core-utility-libraries/security.html#Security::hashinactiveMins()source public static
inactiveMins( )
Получение разрешенных минут бездействия на основе уровня безопасности.
Устарело
3.0.0 Существует только для обратной совместимости, не используется ядромВозвращает
целое числоРазрешённое время бездействия в минутах
randomBytes()source public static
randomBytes( integer $length )
Получение случайных байтов из защищенного источника.
Этот метод переключится на небезопасный источник и сгенерирует предупреждение, если не сможет найти защищённый источник случайных данных.
Параметры
- целое число
$length - Количество байтов, которое нужно получить.
Возвращает
строкаСлучайные байты в двоичном формате.
rijndael()source public static
rijndael( string $text , string $key , string $operation )
Шифрование/дешифрование текста с использованием заданного ключа с помощью метода rijndael.
До версии 2.3.1 использовался фиксированный вектор инициализации. Это было небезопасно. В настоящее время этот метод использует случайный вектор, и будет молча обновлять значения при повторном шифровании.
Параметры
- строка
$text - Зашифрованная строка для дешифрования, обычная строка для шифрования
- строка
$key - Ключ, используемый в качестве ключа шифрования для зашифрованных данных.
- строка
$operation - Операция, которую нужно выполнить, шифрование или дешифрование
Возвращает
строкаЗашифрованная/расшифрованная строка
setCost()source public static
setCost( integer $cost )
Устанавливает стоимость для метода хеширования blowfish.
Параметры
- целое число
$cost - Допустимые значения — 4-31
setHash()source public static
setHash( string $hash )
Устанавливает метод хеширования по умолчанию для объекта Security. Это влияет на все объекты, использующие Security::hash().
Параметры
- строка
$hash - Используемый метод (sha1/sha256/md5/blowfish)
См. также
Security::hash()validateAuthKey()source public static
validateAuthKey( string $authKey )
Проверка аутентификационного хеша.
Устарело
2.8.1 Этот метод был удалён в версии 3.0.0Параметры
- строка
$authKey - Аутентификационный хеш
Возвращает
логическое значениеУспех
Подробное описание свойств
© 2005–2017 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.
https://api.cakephp.org/2.10/class-Security.html