Класс Security
Библиотека безопасности содержит служебные методы, связанные с безопасностью
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT Лицензия
Расположение: 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.
Возвращаемое значение
строкаРасшифрованные данные. Все хвостовые нулевые байты будут удалены.
Исключения
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для использования с компонентом Auth. - НЕ используйте постоянную соль для 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 использовался фиксированный вектор инициализации. Это было небезопасно. Теперь этот метод использует случайный вектор инициализации и будет бесшумно обновлять значения при их повторном шифровании.
Параметры
- строка
$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.
http://api.cakephp.org/2.8/class-Security.html