Phalcon\Crypt
Класс Phalcon\Crypt
Реализует Phalcon\CryptInterface
Предоставляет средства шифрования для приложений phalcon
<?php $crypt = new \Phalcon\Crypt(); $key = "le password"; $text = "This is a secret text"; $encrypted = $crypt->encrypt($text, $key); echo $crypt->decrypt($encrypted, $key);
Константы
integer PADDING_ANSI_X_923
integer PADDING_DEFAULT
integer PADDING_ISO_10126
integer PADDING_ISO_IEC_7816_4
integer PADDING_PKCS7
integer PADDING_SPACE
integer PADDING_ZERO
Свойства
Protected
string $_key;
integer $_padding = 0;
string $_cipher = "aes-256-cfb";
array $availableCiphers;
Доступные методы шифрования.
integer $ivLength = 16; The cipher iv length.
string $hashAlgo = "sha256";
Имя алгоритма хэширования.
boolean $useSigning = false; Включен ли расчет дайджеста сообщения или нет Примечание: эта функция будет включена по умолчанию в Phalcon 4.0.0
Методы
Public
public __construct(string $cipher = "aes-256-cfb", boolean $useSigning = false)
Конструктор класса. Позволяет пользователю задать алгоритм, используемый для вычисления дайджеста сообщения (подписи) и принудительно подписывать или нет.
public decrypt (mixed $text [, mixed $key = null]): string
Расшифровывает зашифрованный текст
Бросит Phalcon\Crypt\Mismatch
<?php $encrypted = $crypt->decrypt( $encrypted, "T4\xb1\x8d\xa9\x98\x05\\\x8c\xbe\x1d\x07&[\x99\x18\xa4~Lc1\xbeW\xb3" );
public decryptBase64 (string $text [,mixed $key = null [,boolean $safe = false]]): string
Расшифровать текст, закодированный как строка base64
Бросит Phalcon\Crypt\Mismatch
public encrypt (mixed $text [, mixed $key = null]): string
Шифрование текста
<?php $encrypted = $crypt->encrypt( "Top secret", "T4\xb1\x8d\xa9\x98\x05\\\x8c\xbe\x1d\x07&[\x99\x18\xa4~Lc1\xbeW\xb3" );
public encryptBase64 (string $text [,mixed $key = null [,boolean $safe = false]]): string
Шифрует текст, возвращающий результат в виде строки base64
public getAvailableCiphers (): array
Возвращает список доступных шифров
public getAvailableHashAlgos (): array
Возвращает список зарегистрированных алгоритмов хэширования, подходящих для hash_hmac.
public getCipher ()
Возвращает текущий шифр
public getHashAlgo (): string
Возвращает имя алгоритма хэширования.
public getKey (): string
Возвращает ключ шифрования
public setCipher (mixed $cipher): Phalcon\Crypt
Устанавливает алгоритм шифрования и дешифрования данных. aes-256-gcm
является предпочтительным шифром, но он не может использоваться до тех пор, пока библиотека openssl не будет обновлена, которая доступна в PHP 7.1. aes-256-ctr
, возможно, является лучшим выбором для алгоритма шифрования для текущей версии библиотеки openssl.
Бросит: Phalcon\Crypt\Exception
public setHashAlgo (string $hashAlgo): Phalcon\Crypt
Задаёт имя алгоритма хэширования для вычисления дайджеста сообщения. Бросит Phalcon\Crypt\Exception, если алгоритм не поддерживается системой.
public setKey (mixed $key): Phalcon\Crypt
Задает ключ шифрования. Ключ $key
должен быть быть предварительно сгенерирован криптографически безопасным способом.
Неверный ключ: le password
Лучше (но все равно небезопасно): #1dj8$=dp?.ak//j1V$~%*0X
Хороший ключ: T4\xb1\x8d\xa9\x98\x05\\\x8c\xbe\x1d\x07&[\x99\x18\xa4~Lc1\xbeW\xb3
Смотреть также: Phalcon\Security\Random
public setPadding (mixed $scheme): Phalcon\Crypt
Изменяет используемую схему заполнения
public useSigning (boolean $useSigning): Phalcon\Crypt
Задает, должен ли использоваться вычисляемый дайджест сообщения (подпись). Примечание: Эта функция будет включена по умолчанию в Phalcon 4.0.0 или выше
Protected
protected _cryptPadText (mixed $text, mixed $mode, mixed $blockSize, mixed $paddingType)
Тексты папок до шифрования.
См.: http://www.di-mgt.com.au/cryptopad.html
protected _cryptUnpadText (mixed $text, mixed $mode, mixed $blockSize, mixed $paddingType)
Удаляет отступы из текста. Если функция обнаружит, что текст не был дополнен, она вернет его неизмененным
Тип | Имя | Описание |
---|---|---|
string | $text | Сообщение, которое необходимо отменить |
string | $mode | Режим шифрования; незаполнение применяется только в режиме CBC или ECB |
int | $blockSize | Размер блока шифра |
int | $paddingType | Схема заполнения |
protected assertCipherIsAvailable (string $cipher)
Убедиться, что что шифр доступен.
Бросит Phalcon\Crypt\Exception
protected assertHashAlgorithmAvailable (string $hashAlgo)
Убедиться, что алгоритм хеширования доступен.
Бросит Phalcon\Crypt\Exception
protected getIvLength (string $cipher): int
Инициализировать доступные алгоритмы шифрования.
Бросит Phalcon\Crypt\Exception
protected initializeAvailableCiphers ()
Инициализировать доступные алгоритмы шифрования.
Бросит Phalcon\Crypt\Exception