legierski / aes
兼容 OpenSSL 的 AES 库
0.1.0
2014-06-23 22:59 UTC
Requires
- php: >=5.3.3
- ext-openssl: *
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-24 03:09:40 UTC
README
执行与 OpenSSL 兼容的 AES-256 (CBC) 加密/解密,兼容 CryptoJS、Gibberish AES 以及可能的其他库。
可用于在 PHP 中加密数据并在 JavaScript 中解密,或反之。
代码来源: http://uk3.php.net/manual/en/function.openssl-decrypt.php#107210
要求
- PHP 5.3.3 或更高版本
- PHP 的 OpenSSL 扩展
安装
在 composer.json 中
{
"require": {
"legierski/aes": "0.1.*"
}
}
加密数据
$aes = new \Legierski\AES\AES; $encrypted = $aes->encrypt('Very sensitive data', 'password'); // OpenSSL will truncate rows longer than 76 characters, so let's wrap our encrypted data $encryptedForOpenSSL = $aes->wrapForOpenSSL($encrypted);
解密数据
$aes = new \Legierski\AES\AES; $decrypted = $aes->decrypt('U2FsdGVkX1+nnmEfHgoGQpwSPcT+mDZHxhr8XhEsmIvT2JAxsIzsRocO6x1PErrF', 'password');
使用 OpenSSL 加密/解密
$ echo "Very sensitive data" | openssl enc -aes-256-cbc -a -k password $ echo "U2FsdGVkX1+nnmEfHgoGQpwSPcT+mDZHxhr8XhEsmIvT2JAxsIzsRocO6x1PErrF" | openssl enc -aes-256-cbc -a -d -k password
使用 CryptoJS 加密/解密
var encrypted = CryptoJS.AES.encrypt('Very sensitive data', 'password').toString(); var decrypted = CryptoJS.AES.decrypt('U2FsdGVkX1+nnmEfHgoGQpwSPcT+mDZHxhr8XhEsmIvT2JAxsIzsRocO6x1PErrF', 'password').toString(CryptoJS.enc.Utf8);
使用 Gibberish AES 加密/解密
var encrypted = GibberishAES.enc('Very sensitive data', 'password'); var decrypted = GibberishAES.dec('U2FsdGVkX1+nnmEfHgoGQpwSPcT+mDZHxhr8XhEsmIvT2JAxsIzsRocO6x1PErrF', 'password');
测试
运行单元测试
$ ./vendor/bin/phpunit
测试是否符合 PSR2 编码风格指南
$ ./vendor/bin/phpcs --standard=PSR2 ./src
许可
MIT 许可证 (MIT)