Класс Phalcon\Crypt

Реализует Phalcon\CryptInterface

Source on GitHub

Предоставляет средства шифрования для приложений 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