sinavia / laravel-vault
Laravel的加密库实现
v1.0.0
2018-07-14 12:36 UTC
Requires
- lesichkovm/laravel-advanced-model: >=v1.2.0
This package is auto-updated.
Last update: 2024-09-27 05:37:30 UTC
README
Laravel的加密库(数据静态存储)实现。可以直接使用,也可以附加到Laravel模型上。当附加到模型上时,它将属性值安全地存储在Vault的表中。模型表中的属性只包含对应Vault表的标识符。
安装
composer require sinevia/laravel-vault
数据库表结构
以下结构用于数据库。
如何使用
1. 迁移
- 1.1. 将迁移文件添加到数据库/migrations目录
<?php
class VaultTablesCreate extends Illuminate\Database\Migrations\Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up() {
Sinevia\Vault\Models\Vault::tableCreate();
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down() {
Sinevia\Vault\Models\Vault::tableDelete();
}
}
- 1.2. 运行迁移以创建Vault表
php artisan migrate
2. 直接使用Vault
- 2.1. 将值存储到Vault中。如果成功,将返回Vault ID,表示值已安全存储
$vaultId = \Sinevia\Models\Vault::storeValue($value, $password);
- 2.2. 使用存储值的Vault ID检索值(请参阅上述示例)。
$value = \Sinevia\Model\Vault::retrieveValue($vaultId, $password);
3. 将Vault与模型一起使用
- 3.1. Vault密钥
在app/Helpers/App中创建一个新的类,带有vaultKey方法。该函数应返回一个字符串,包含用于保护您值的密钥。不要丢失您的密钥,否则您将无法恢复您的值
- 3.2. 将VaultAttribute特质添加到模型
use \Sinevia\Vault\VaultAttributeTrait;
- 3.3. 指定与Vault一起使用的属性
class ExampleModel {
use \Sinevia\Vault\VaultAttributeTrait;
public function getUsernameAttribute($value) {
return $this->getVaultAttribute($value);
}
public function setUsernameAttribute($value) {
return $this->setVaultAttribute('Username', $value);
}
}
- 3.4. 使用加密属性
$exampleModel->Username = 'test';
$exampleModel->save();