Класс Security
Библиотека безопасности содержит служебные методы, связанные с безопасностью
Краткое описание свойств
- Реализация криптографического алгоритма для использования.
object - Соль HMAC, используемая для шифрования и дешифрования.
string -
stringМетод хэширования по умолчанию. Если параметр
$typeдляSecurity::hash()не указан, используется это значение. По умолчанию «sha1».
Краткое описание методов
- Проверка ключа шифрования на соответствие длине.
- Сравнение, устойчивое к атакам по времени, отдающее предпочтение собственным реализациям PHP.
- Расшифровка значения с использованием AES-256.
- Шифрование значения с использованием AES-256.
- Получение реализации криптографического алгоритма на основе загруженных расширений.
-
Получение соли HMAC, используемой для процедур шифрования/дешифрования.
- Создание хэша из строки с использованием указанного метода.
- Аналогично randomBytes(), но не защищено криптографически.
- Получение случайных байтов из защищённого источника.
- Генерирует случайную строку.
- Шифрует/расшифровывает текст с использованием заданного ключа методом rijndael.
-
Получение или установка соли HMAC для использования в процедурах шифрования/дешифрования.
-
Устанавливает метод хэширования по умолчанию для объекта Security. Это влияет на все объекты, использующие Security::hash().
-
Устанавливает соль HMAC, используемую для процедур шифрования/дешифрования.
Подробное описание методов
_checkKey()source protected static
_checkKey( string $key , string $method )
Проверка ключа шифрования на соответствие длине.
Параметры
- строка
$key - Ключ для проверки.
- строка
$method - Метод, для которого проверяется ключ.
Исключения
InvalidArgumentExceptionЕсли длина ключа не 256 бит/32 байта
constantEquals()source public static
constantEquals( string $original , string $compare )
Сравнение, устойчивое к атакам по времени, отдающее предпочтение собственным реализациям PHP.
Параметры
- строка
$original - Исходное значение.
- строка
$compare - Значение для сравнения.
Возвращаемое значение
booleanСм. также
https://github.com/resonantcore/php-future/С версии
3.6.2decrypt()source public static
decrypt( string $cipher , string $key , string|null $hmacSalt = null )
Расшифровка значения с использованием AES-256.
Параметры
- строка
$cipher - Зашифрованный текст для расшифровки.
- строка
$key - Ключ длиной 256 бит/32 байта, используемый как ключ шифра.
- строка|null
$hmacSaltнеобязательный null - Соль для использования в процедуре HMAC. Оставьте null, чтобы использовать Security.salt.
Возвращаемое значение
строка|booleanРасшифрованные данные. Любые завершающие нулевые байты будут удалены.
Исключения
InvalidArgumentExceptionПри неверных данных или ключе.
encrypt()source public static
encrypt( string $plain , string $key , string|null $hmacSalt = null )
Шифрование значения с использованием AES-256.
Примечание Вы не можете должным образом зашифровать/расшифровать данные с завершающими нулевыми байтами. Любые завершающие нулевые байты будут удалены при расшифровке из-за того, как PHP дополняет сообщения нулями перед шифрованием.
Параметры
- строка
$plain - Значение для шифрования.
- строка
$key - Ключ длиной 256 бит/32 байта, используемый как ключ шифра.
- строка|null
$hmacSaltнеобязательный null - Соль для использования в процедуре HMAC. Оставьте null, чтобы использовать Security.salt.
Возвращаемое значение
строкаЗашифрованные данные.
Исключения
InvalidArgumentExceptionПри неверных данных или ключе.
engine()source public static
engine( Cake\Utility\Crypto\OpenSsl|Cake\Utility\Crypto\Mcrypt|null $instance = null )
Получение реализации криптографического алгоритма на основе загруженных расширений.
Этот метод можно использовать для принудительного выбора между реализациями mcrypt/openssl/custom.
Параметры
- Cake\Utility\Crypto\OpenSsl|Cake\Utility\Crypto\Mcrypt|null
$instanceнеобязательный null - Криптографический экземпляр для использования.
Возвращаемое значение
Cake\Utility\Crypto\OpenSsl|Cake\Utility\Crypto\McryptЭкземпляр криптографического алгоритма.
Исключения
InvalidArgumentExceptionЕсли нет совместимого криптографического расширения.
getSalt()source public static
getSalt( )
Получение соли HMAC, используемой для процедур шифрования/дешифрования.
Возвращаемое значение
строкаТекущая настроенная соль
hash()source public static
hash( string $string , string|null $algorithm = null , mixed $salt = false )
Создание хэша из строки с использованием указанного метода.
Параметры
- строка
$string - Строка для хэширования
- строка|null
$algorithmнеобязательный null Алгоритм хэширования (например, sha1, sha256). Может быть любым допустимым алгоритмом, включенным в список, возвращаемый hash_algos(). Если значение не передано, используется тип, указанный в
Security::$hashType.- смешанное
$saltнеобязательный false Если true, автоматически добавляет соль приложения к $string (Security.salt).
Возвращаемое значение
строкаХэш
Ссылка
https://book.cakephp.org/3.0/en/core-libraries/security.html#hashing-datainsecureRandomBytes()source public static
insecureRandomBytes( integer $length )
Аналогично randomBytes(), но не защищено криптографически.
Параметры
- целое число
$length - Количество байтов, которое требуется.
Возвращаемое значение
строкаСлучайные байты в двоичном формате.
См. также
\Cake\Utility\Security::randomBytes()randomBytes()source public static
randomBytes( integer $length )
Получить случайные байты из безопасного источника.
Этот метод будет использовать небезопасный источник и сгенерирует предупреждение, если не найдет безопасного источника случайных данных.
Параметры
- целое число
$length - Количество байтов, которое требуется.
Возвращаемое значение
строкаСлучайные байты в двоичном формате.
randomString()source public static
randomString( integer $length = 64 )
Создаёт безопасную случайную строку.
Параметры
- целое число
$lengthнеобязательно 64 - Длина строки. По умолчанию 64.
Возвращаемое значение
строкаС тех пор
3.6.0rijndael()source public static deprecated
rijndael( string $text , string $key , string $operation )
Шифрование/Дешифрование текста с помощью заданного ключа с использованием метода rijndael.
Устарело
3.6.3 Этот метод использует функции, предоставляемые расширением mcrypt, которое устарело в PHP 7.1 и удалено в PHP 7.2. Нет точного эквивалента для этого метода. Обновите свой код, чтобы использовать Security::encrypt()/Security::decrypt() с движком OpenSsl вместо этого.
Параметры
- строка
$text - Зашифрованная строка для дешифрования, обычная строка для шифрования
- строка
$key - Ключ, используемый в качестве ключа шифрования для зашифрованных данных.
- строка
$operation - Операция для выполнения, шифрование или дешифрование
Возвращаемое значение
строкаЗашифрованная/расшифрованная строка.
Исключения
InvalidArgumentExceptionПри возникновении ошибок.
salt()source public static deprecated
salt( string|null $salt = null )
Получает или устанавливает соль HMAC, которая должна использоваться для шифрования/дешифрования.
Устарело
3.5.0 Используйте getSalt()/setSalt() вместо этого.Параметры
- строка|null
$saltнеобязательно null - Соль, используемая для шифрования. Если null, возвращает текущую соль.
Возвращаемое значение
строкаТекущая настроенная соль
setHash()source public static
setHash( string $hash )
Устанавливает метод хэширования по умолчанию для объекта Security. Это влияет на все объекты, использующие Security::hash().
Параметры
- строка
$hash - Метод для использования (sha1/sha256/md5 и т.д.)
См. также
\Cake\Utility\Security::hash()setSalt()source public static
setSalt( string $salt )
Устанавливает соль HMAC, которая должна использоваться для шифрования/дешифрования.
Параметры
- строка
$salt - Соль, используемая для шифрования.
Подробности свойств
$hashTypesource
public static строка
Метод хэширования по умолчанию. Если параметр $type для Security::hash() не указан, используется это значение. По умолчанию 'sha1'.
'sha1'
© 2005–present 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/3.6/class-Cake.Utility.Security.html