由于网上现有的 AES 加解密工具似乎不能正常解密我们 Defuse 库加密出来的字符串,就写了一个加解密工具,方便开发时加密解密 AES,基于的是 defuse/php-encryption,部署在 Azure 应用服务上面。
输入密钥
根据 README 描述,这个库似乎只支持 256-bit 的密钥,请使用 AES 密钥在线生成器 生成 256-bit 的密钥使用。
输入文本
加密 / 解密结果
相关代码
encrypt.php1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| use Defuse\Crypto\Crypto; use Defuse\Crypto\Exception as Ex; use Defuse\Crypto\Key; use Defuse\Crypto\Encoding;
function encrypt($text, $key, $decrypt) { try { $key = Encoding::saveBytesToChecksummedAsciiSafeString(Key::KEY_CURRENT_VERSION, $key); $key = Key::loadFromAsciiSafeString($key); if ((bool) $decrypt) { return Crypto::decrypt((string) $text, $key); } else { return Crypto::encrypt((string) $text, $key); } } catch (Ex\CryptoException $ex) { return $decrypt ? 'Decryption failed' : 'Encryption failed'; } }
|
composer.json1 2 3 4 5 6 7
| { ..., "require": { "php": ">=5.4.0", "defuse/php-encryption": "~2.0" } }
|
来自 Drupal module - Real AES 的源码,有修改。