elavrom/cryptor

一个用于加密、解密和HMAC签名的简单辅助类。

0.3.0 2022-04-27 13:48 UTC

This package is auto-updated.

Last update: 2024-09-28 13:46:02 UTC


README

一个用于加密、解密和HMAC签名的简单辅助类。

开始使用

对于第一次实例化,您必须提供两个密钥,这些密钥将作为您的密码。

建议您生成自己的密钥来加密和签名数据,并确保其安全。生成此类密钥的一种方法是使用OpenSSL。

# Hexadecimal doubles the number of bytes
# so that would be a 64 bytes long passphrase
openssl rand -hex 32

示例

加密/解密

$cryptor = new Cryptor($_ENV['MY_ENCRYPTION_SECRET'], $_ENV['MY_SIGNING_SECRET']);
$myData = '{"a": "This is a sample value."}';

$encrypted = $cryptor->encrypt($myData);
$decrypted = $cryptor->decrypt($encrypted);

// If you don't want to use default cipher method, or default secret, you can override them :
$encrypted = $cryptor->encrypt($myData, null, 'aes-128-cbc');
$encrypted = $cryptor->decrypt($encrypted, null, 'aes-128-cbc');

$encrypted = $cryptor->encrypt($myData, 'myCustomKey', null);
$encrypted = $cryptor->decrypt($encrypted, 'myCustomKey', null);

// You can get URL safe base64 result with the last argument : 
$encrypted = $cryptor->encrypt($myData, null, null, true);

HMAC签名/验证

$cryptor = new Cryptor($_ENV['MY_ENCRYPTION_SECRET'], $_ENV['MY_SIGNING_SECRET']);
$myData = '{"a": "This is a sample value."}';

// You can simply sign your data with : 
$signature = $cryptor->sign($myData);
// And check if a signature originated from you with :
$valid = $cryptor->checkSignature($signature, $myData);
// You can also sign a file directly. Cryptor checks if the file exists and is readable : 
$signature = $cryptor->sign('/path/to/my/file.txt');

// Same as encryption, you can override the secret and the hash algorithm : 
$signature = $cryptor->sign($myData, 'myCustomSecret', null);
$valid = $cryptor->checkSignature($signature, $myData, 'myCustomSecret', null);

$signature = $cryptor->sign($myData, null, 'sha384');
$valid = $cryptor->checkSignature($signature, $myData, null, 'sha384');