Класс Security
Библиотека Security содержит служебные методы, связанные с безопасностью
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Utility/Security.php
Краткое описание свойств
- Значение по умолчанию для стоимости
string - Метод хеширования по умолчанию
string
Краткое описание методов
- Проверка ключа шифрования на корректную длину.
- Одностороннее шифрование с использованием функции crypt() PHP. Для использования хеширования Blowfish см.
Security::hash() -
Генерирует псевдослучайную соль, подходящую для использования с функцией crypt() PHP. Длина соли не должна превышать 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 )
Одностороннее шифрование с использованием функции crypt() PHP. Для использования хеширования Blowfish см. Security::hash()
Параметры
- строка
$password - Строка, которая будет зашифрована.
- смешанный
$saltнеобязательно false - false для генерации новой соли или существующая соль.
Возвращает
строкаХешированная строка или пустая строка при ошибке.
_salt()source protected static
_salt( integer $length 22 )
Генерирует псевдослучайную соль, подходящую для использования с функцией crypt() PHP. Длина соли не должна превышать 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.
Предупреждение Вы не сможете правильно зашифровать/расшифровать данные с заключительным байтами null. Любые заключительные байты null будут удалены при дешифровании из-за того, как PHP дополняет сообщения null перед шифрованием.
Параметры
- строка
$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 или ранее сгенерированной солью.
Возвращает
строкаХэш
Ссылка
http://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 использовался фиксированный вектор инициализации. Это было небезопасно. Этот метод теперь использует случайный iv и будет тихо обновлять значения при их повторном шифровании.
Параметры
- строка
$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–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.
https://api.cakephp.org/2.9/class-Security.html