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