Класс Security
Библиотека безопасности содержит служебные методы, связанные с безопасностью.
Краткое описание свойств
- $_instance protected static
object|nullРеализация криптографического алгоритма для использования.
- $_salt protected static
string|nullСоль HMAC для использования в процедурах шифрования и дешифрования.
- $hashType public static
stringМетод хэширования по умолчанию. Если параметр
$typeдляSecurity::hash()не указан, используется это значение. По умолчанию 'sha1'.
Краткое описание методов
-
_checkKey() protected static
Проверка ключа шифрования на правильную длину.
-
constantEquals() public static
Сравнение, устойчивое к атакам с использованием времени, которое отдаёт предпочтение собственным реализациям PHP.
-
decrypt() public static
Дешифровка значения с использованием AES-256.
-
encrypt() public static
Шифрование значения с использованием AES-256.
-
engine() public static
Получение реализации криптографического алгоритма на основе загруженных расширений.
-
getSalt() public static
Получение соли HMAC для использования в процедурах шифрования/дешифрования.
-
hash() public static
Создание хэша из строки с использованием указанного метода.
-
insecureRandomBytes() public static
Аналогично randomBytes(), но не криптографически безопасен.
-
randomBytes() public static
Получение случайных байтов из безопасного источника.
-
randomString() public static
Создаёт безопасную случайную строку.
-
setHash() public static
Устанавливает метод хэширования по умолчанию для объекта Security. Это влияет на все объекты, использующие Security::hash().
-
setSalt() public static
Устанавливает соль HMAC для использования в процедурах шифрования/дешифрования.
Подробное описание методов
_checkKey() protected static
_checkKey(string $key, string $method): void
Проверка ключа шифрования на корректную длину.
Параметры
-
string$key Ключ для проверки.
-
string$method Метод, для которого проверяется ключ.
Возвращает
voidИсключения
InvalidArgumentExceptionПри неверной длине ключа (не 256 бит/32 байта)
constantEquals() public static
constantEquals(mixed $original, mixed $compare): bool
Сравнение, устойчивое к атакам по времени, которое предпочитает родные реализации PHP.
Параметры
-
mixed$original Исходное значение.
-
mixed$compare Значение для сравнения.
Возвращает
booldecrypt() public static
decrypt(string $cipher, string $key, string|null $hmacSalt = null): string|null
Расшифровка значения с использованием AES-256.
Параметры
-
string$cipher Зашифрованный текст для расшифровки.
-
string$key Ключ длиной 256 бит/32 байта для использования в качестве ключа шифра.
-
string|null$hmacSalt optional Соль для HMAC-процесса. Оставьте null, чтобы использовать значение Security::getSalt().
Возвращает
string|nullИсключения
InvalidArgumentExceptionПри некорректных данных или ключе.
encrypt() public static
encrypt(string $plain, string $key, string|null $hmacSalt = null): string
Шифрование значения с использованием AES-256.
Примечание Нельзя правильно шифровать/расшифровывать данные с завершающими нулевыми байтами. Все завершающие нулевые байты будут удалены при расшифровке из-за того, как PHP дополняет сообщения нулями перед шифрованием.
Параметры
-
string$plain Значение для шифрования.
-
string$key Ключ длиной 256 бит/32 байта для использования в качестве ключа шифра.
-
string|null$hmacSalt optional Соль для HMAC-процесса. Оставьте null, чтобы использовать значение Security::getSalt().
Возвращает
stringИсключения
InvalidArgumentExceptionПри некорректных данных или ключе.
engine() public static
engine(Cake\Utility\Crypto\OpenSsl|null $instance = null): Cake\Utility\Crypto\OpenSsl
Получение реализации шифрования на основе загруженных расширений.
Можно использовать этот метод, чтобы принудительно выбрать между реализациями openssl/custom.
Параметры
-
Cake\Utility\Crypto\OpenSsl|null$instance optional Инстанс шифрования для использования.
Возвращает
Cake\Utility\Crypto\OpenSslИсключения
InvalidArgumentExceptionПри отсутствии совместимого расширения шифрования.
getSalt() public static
getSalt(): string
Получение соли HMAC, используемой для шифрования/расшифровки.
Возвращает
stringhash() public static
hash(string $string, string|null $algorithm = null, mixed $salt = false): string
Создание хеша из строки с использованием заданного метода.
Параметры
-
string$string Строка для хеширования.
-
string|null$algorithm optional Алгоритм хеширования (например, sha1, sha256 и т.д.). Может быть любым допустимым алгоритмом, включенным в список, возвращаемый hash_algos(). Если значение не передано, используется тип, указанный в
Security::$hashType.-
mixed$salt optional Если true, автоматически добавляет значение, возвращаемое Security::getSalt(), к $string.
Возвращает
stringИсключения
RuntimeExceptionСсылки
insecureRandomBytes() public static
insecureRandomBytes(int $length): string
Аналогично randomBytes(), но не криптографически безопасен.
Параметры
-
int$length Количество байтов.
Возвращает
stringСм. также
randomBytes() public static
randomBytes(int $length): string
Получение случайных байтов из безопасного источника.
Этот метод будет использовать небезопасный источник и сгенерирует предупреждение, если не сможет найти безопасный источник случайных данных.
Параметры
-
int$length Количество байтов.
Возвращает
stringrandomString() public static
randomString(int $length = 64): string
Создает безопасную случайную строку.
Параметры
-
int$length optional Длина строки. По умолчанию 64.
Возвращает
stringsetHash() public static
setHash(string $hash): void
Устанавливает метод хеширования по умолчанию для объекта Security. Это влияет на все объекты, использующие Security::hash().
Параметры
-
string$hash Метод для использования (sha1/sha256/md5 и т.д.).
Возвращает
voidСм. также
setSalt() public static
setSalt(string $salt): void
Устанавливает соль HMAC для использования в процедурах шифрования/расшифровки.
Параметры
-
string$salt Соль для использования в процедурах шифрования.
Возвращает
voidПодробное описание свойств
$_instance protected static
Реализация шифрования для использования.
Тип
object|null$_salt protected static
Соль HMAC для использования в процедурах шифрования и расшифровки.
Тип
string|null$hashType public static
Метод хеширования по умолчанию. Если параметр $type для Security::hash() не указан, используется это значение. По умолчанию 'sha1'.
Тип
string
© 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/4.2/class-Cake.Utility.Security.html