cbenjafield / laravel-password-manager
为 Laravel 的一款简单密码管理器包。
v0.1.1
2022-08-11 14:07 UTC
Requires
- php: >=8.0
- illuminate/database: ^9.0
- illuminate/encryption: ^9.0
Requires (Dev)
- nunomaduro/collision: ^6.2
- orchestra/testbench: ^7.6
- phpunit/phpunit: ^9.5
README
Laravel Password Manager
一个用于加密和解密存储中的密码的简单 Laravel 包。
安装
Composer
composer require cbenjafield/laravel-password-manager
安装后,发布配置
php artisan vendor:publish --provider="Benjafield\LaravelPasswordManager\PasswordServiceProvider" --tag="config"
将一个16字符长的密钥添加到您的 .env 文件中。如果您想更改密码表的名称,也可以指定。
PASSWORDS_KEY="Your 16 Character Long String Here" PASSWORDS_TABLE="optional_password_table_name"
如果您想为 .env 文件生成一个密钥,可以使用以下 Artisan 命令
php artisan passwords:generate-key
然后,您可以复制生成的密钥到您的 .env 文件中。
然后,发布数据库迁移
php artisan vendor:publish --provider="Benjafield\LaravelPasswordManager\PasswordServiceProvider" --tag="migrations"
运行迁移
php artisan migrate
用法
加密密码
您可以使用依赖注入
<?php namespace App\Http\Controllers; use Benjafield\LaravelPasswordManager\PasswordManager; use Illuminate\Http\Request; class PasswordController extends Controller { public function store(Request $request, PasswordManager $passwords) { $request->validate([ 'name' => ['required', 'string', 'max:255'], 'password' => ['required', 'string', 'max:255'], ]); $password = $passwords->encrypt($request->name, $request->password); // Call the save method to store the password in the database. $password->save(); return response($password->password, 201); } }
或者您可以使用外观
use Benjafield\LaravelPasswordManager\Facades\PasswordsFacade; $password = PasswordsFacade::encrypt($request->name, $request->password); // Call the save method to store the password in the database. $password->save();
解密密码
要解密密码,您需要检索最初用于加密它的动态密钥。
use Benjafield\LaravelPasswordManager\PasswordManager; use Benjafield\LaravelPasswordManager\Password; public function show(int $id, PasswordManager $passwords) { // Retrieve the password from the database. $password = Password::findOrFail($id); // Decrypt the password back into the original string. $decrypted = $passwords->decrypt($password->dynamic, $password->password); }
注意事项
此包不处理与保护密码加密和解密相关的身份验证或中间件 - 您需要自行处理。
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。