eloquent / lockbox
此包已 废弃 且不再维护。未建议替代包。
简单,强大的加密。
0.2.0
2013-09-03 11:29 UTC
Requires
- php: >=5.3
- ext-mcrypt: *
- ext-openssl: *
- icecave/isolator: ~2
Requires (Dev)
- eloquent/asplode: ~1
- eloquent/liberator: ~1
- icecave/archer: 1.0.0-alpha.2
This package is auto-updated.
Last update: 2020-02-06 04:48:09 UTC
README
简单,强大的加密。
安装和文档
- 作为 Composer 包 eloquent/lockbox 提供。
- 提供 API 文档。
什么是 Lockbox?
Lockbox 是实现应用程序中强大加密的最简单方式。 Lockbox 结合了成熟的技术来确保数据安全。更多信息请参见 Lockbox 网站。
用法
生成和写入密钥
use Eloquent\Lockbox\Key\Generator\KeyGenerator; use Eloquent\Lockbox\Key\Persistence\KeyWriter; $keyGenerator = new KeyGenerator; $key = $keyGenerator->generateKey(); $keyPath = '/path/to/lockbox.key'; $keyWriter = new KeyWriter; $keyWriter->writeFile($key, $keyPath);
目前无法通过命令行生成 lockbox 密钥,但此功能计划中。
加密数据
use Eloquent\Lockbox\Encrypter; use Eloquent\Lockbox\Key\Persistence\KeyReader; $keyPath = '/path/to/lockbox.key'; $keyReader = new KeyReader; $key = $keyReader->readFile($keyPath); $encrypter = new Encrypter; echo $encrypter->encrypt($key, 'Super secret data.');
使用相同密钥加密多个数据包
Lockbox 包含 'bound' 加密器,这些加密器锁定到特定密钥,方便加密多个数据包。
use Eloquent\Lockbox\Bound\BoundEncrypter; use Eloquent\Lockbox\Key\Persistence\KeyReader; $keyPath = '/path/to/lockbox.key'; $keyReader = new KeyReader; $key = $keyReader->readFile($keyPath); $encrypter = new BoundEncrypter($key); echo $encrypter->encrypt('Super secret data.'); echo $encrypter->encrypt('Extra secret data.'); echo $encrypter->encrypt('Mega secret data.');
解密数据
use Eloquent\Lockbox\Decrypter; use Eloquent\Lockbox\Key\Persistence\KeyReader; $keyPath = '/path/to/lockbox.key'; $keyReader = new KeyReader; $key = $keyReader->readFile($keyPath); $decrypter = new Decrypter; $encrypted = 'AQF_VjJS9sAL75uuUP_HTu9Do_3itIDaHLLXmh_JLOBRqQeZ_hnDwht4WtEkz3io' . 'iW0WIHb3lANyKqpShyiPcVdj_DbfYiIPEWab8e3vqwEUvoqFFNo'; $result = $decrypter->decrypt($key, $encrypted); if ($result->isSuccessful()) { echo $result->data(); } else { echo 'Decryption failed.'; }
使用相同密钥解密多个数据包
Lockbox 包含 'bound' 解密器,这些解密器锁定到特定密钥,方便解密多个数据包。
use Eloquent\Lockbox\Bound\BoundDecrypter; use Eloquent\Lockbox\Key\Persistence\KeyReader; $keyPath = '/path/to/lockbox.key'; $keyReader = new KeyReader; $key = $keyReader->readFile($keyPath); $decrypter = new BoundDecrypter($key); $encrypted = array( 'AQF_VjJS9sAL75uuUP_HTu9Do_3itIDaHLLXmh_JLOBRqQeZ_hnDwht4WtEkz3io' . 'iW0WIHb3lANyKqpShyiPcVdj_DbfYiIPEWab8e3vqwEUvoqFFNo', 'AQH44yTs7va1cDoBpX0xVLqIRow5fs8Jj5-DYDJ1R3YY9udBCexmvDs9BH1qJDjC' . 'RSqcGriKi_UkL5per1WHwdxWuPq8QsYiBqeC9e9zypl0Xi1QT3s', 'AQGg0MsYtH0Rboyqssivssupb_GKlBotCpdFtc6WpnMaji8_ZvmGUTRu2DKkxFhA' . 'dk_s0FWZ7NYFjSDt1puIrr7MlB7owNuR5KhUIj04Can0zDCYjJY', ); foreach ($encrypted as $string) { $result = $decrypter->decrypt($string); if ($result->isSuccessful()) { echo $result->data(); } else { echo 'Decryption failed.'; } }