Class Phalcon\Crypt
Source on GitHub
Namespace |
Phalcon |
|
Uses |
Phalcon\Crypt\CryptInterface, Phalcon\Crypt\Exception, Phalcon\Crypt\Mismatch |
|
Implements |
CryptInterface |
Provides encryption capabilities to Phalcon applications.
use Phalcon\Crypt;
$crypt = new Crypt();
$crypt->setCipher('aes-256-ctr');
$key = "T4\xb1\x8d\xa9\x98\x05\\\x8c\xbe\x1d\x07&[\x99\x18\xa4~Lc1\xbeW\xb3";
$text = "The message to be encrypted";
$encrypted = $crypt->encrypt($text, $key);
echo $crypt->decrypt($encrypted, $key);
Constants
const PADDING_ANSI_X_923 = 1;
const PADDING_DEFAULT = 0;
const PADDING_ISO_10126 = 3;
const PADDING_ISO_IEC_7816_4 = 4;
const PADDING_PKCS7 = 2;
const PADDING_SPACE = 6;
const PADDING_ZERO = 5;
Properties
/**
* @var string
*/
protected authTag;
/**
* @var string
*/
protected authData = ;
/**
* @var int
*/
protected authTagLength = 16;
/**
* @var string
*/
protected key = ;
/**
* @var int
*/
protected padding = 0;
/**
* @var string
*/
protected cipher = aes-256-cfb;
/**
* Available cipher methods.
* @var array
*/
protected availableCiphers;
/**
* The cipher iv length.
* @var int
*/
protected ivLength = 16;
/**
* The name of hashing algorithm.
* @var string
*/
protected hashAlgo = sha256;
/**
* Whether calculating message digest enabled or not.
*
* @var bool
*/
protected useSigning = true;
Methods
public function __construct( string $cipher = string, bool $useSigning = bool );
Phalcon\Crypt constructor.
public function decrypt( string $text, string $key = null ): string;
Decrypts an encrypted text.
$encrypted = $crypt->decrypt(
$encrypted,
"T4\xb1\x8d\xa9\x98\x05\\\x8c\xbe\x1d\x07&[\x99\x18\xa4~Lc1\xbeW\xb3"
);
public function decryptBase64( string $text, mixed $key = null, bool $safe = bool ): string;
Decrypt a text that is coded as a base64 string.
@throws \Phalcon\Crypt\Mismatch
public function encrypt( string $text, string $key = null ): string;
Encrypts a text.
$encrypted = $crypt->encrypt(
"Top secret",
"T4\xb1\x8d\xa9\x98\x05\\\x8c\xbe\x1d\x07&[\x99\x18\xa4~Lc1\xbeW\xb3"
);
public function encryptBase64( string $text, mixed $key = null, bool $safe = bool ): string;
Encrypts a text returning the result as a base64 string.
public function getAuthData(): string
public function getAuthTag(): string
public function getAuthTagLength(): int
public function getAvailableCiphers(): array;
Returns a list of available ciphers.
public function getAvailableHashAlgos(): array;
Return a list of registered hashing algorithms suitable for hash_hmac.
public function getCipher(): string;
Returns the current cipher
public function getHashAlgo(): string;
Get the name of hashing algorithm.
public function getKey(): string;
Returns the encryption key
public function setAuthData( string $data ): CryptInterface;
public function setAuthTag( string $tag ): CryptInterface;
public function setAuthTagLength( int $length ): CryptInterface;
public function setCipher( string $cipher ): CryptInterface;
Sets the cipher algorithm for data encryption and decryption.
The `aes-256-gcm’ is the preferable cipher, but it is not usable until the openssl library is upgraded, which is available in PHP 7.1.
The `aes-256-ctr’ is arguably the best choice for cipher algorithm for current openssl library version.
public function setHashAlgo( string $hashAlgo ): CryptInterface;
Set the name of hashing algorithm.
@throws \Phalcon\Crypt\Exception
public function setKey( string $key ): CryptInterface;
Sets the encryption key.
The `$key’ should have been previously generated in a cryptographically safe way.
Bad key: “le password”
Better (but still unsafe): “#1dj8$=dp?.ak//j1V$~%*0X”
Good key: “T4\xb1\x8d\xa9\x98\x05\\x8c\xbe\x1d\x07&[\x99\x18\xa4~Lc1\xbeW\xb3”
public function setPadding( int $scheme ): CryptInterface;
Changes the padding scheme used.
public function useSigning( bool $useSigning ): CryptInterface;
Sets if the calculating message digest must used.
protected function assertCipherIsAvailable( string $cipher ): void;
Assert the cipher is available.
protected function assertHashAlgorithmAvailable( string $hashAlgo ): void;
Assert the hash algorithm is available.
protected function cryptPadText( string $text, string $mode, int $blockSize, int $paddingType ): string;
Pads texts before encryption. See cryptopad
protected function cryptUnpadText( string $text, string $mode, int $blockSize, int $paddingType );
Removes a padding from a text.
If the function detects that the text was not padded, it will return it unmodified.
protected function getIvLength( string $cipher ): int;
Initialize available cipher algorithms.
protected function initializeAvailableCiphers(): void;
Initialize available cipher algorithms.
Interface Phalcon\Crypt\CryptInterface
Source on GitHub
Interface for Phalcon\Crypt
Methods
public function decrypt( string $text, string $key = null ): string;
Decrypts a text
public function decryptBase64( string $text, mixed $key = null ): string;
Decrypt a text that is coded as a base64 string
public function encrypt( string $text, string $key = null ): string;
Encrypts a text
public function encryptBase64( string $text, mixed $key = null ): string;
Encrypts a text returning the result as a base64 string
public function getAuthData(): string;
Returns authentication data
public function getAuthTag(): string;
Returns the authentication tag
public function getAuthTagLength(): int;
Returns the authentication tag length
public function getAvailableCiphers(): array;
Returns a list of available cyphers
public function getCipher(): string;
Returns the current cipher
public function getKey(): string;
Returns the encryption key
public function setAuthData( string $data ): CryptInterface;
Sets authentication data
public function setAuthTag( string $tag ): CryptInterface;
Sets the authentication tag
public function setAuthTagLength( int $length ): CryptInterface;
Sets the authentication tag length
public function setCipher( string $cipher ): CryptInterface;
Sets the cipher algorithm
public function setKey( string $key ): CryptInterface;
Sets the encryption key
public function setPadding( int $scheme ): CryptInterface;
Changes the padding scheme used.
Class Phalcon\Crypt\Exception
Source on GitHub
Namespace |
Phalcon\Crypt |
|
Extends |
\Phalcon\Exception |
Exceptions thrown in Phalcon\Crypt use this class
Class Phalcon\Crypt\Mismatch
Source on GitHub
Namespace |
Phalcon\Crypt |
|
Extends |
Exception |
Exceptions thrown in Phalcon\Crypt will use this class.