elavrom / cryptor
一个用于加密、解密和HMAC签名的简单辅助类。
0.3.0
2022-04-27 13:48 UTC
Requires
- php: ^7.4||^8.0
- ext-openssl: *
Requires (Dev)
- phpunit/phpunit: ^9.5
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');