custom-d/hashed-search 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

custom-d/hashed-search

最新稳定版本:v1.4.0

Composer 安装命令:

composer require custom-d/hashed-search

包简介

A hashed search package for adding a searchable hash to your encrypted database columns

README 文档

README

PHP Composer Packagist Packagist Release

Package description: Package to allow hashing of encrypted data for searching

Installation

Install via composer

composer require custom-d/hashed-search

Publish package assets

php artisan vendor:publish --provider="CustomD\HashedSearch\ServiceProvider"

Usage

Eloqent Models

In your model add the use CustomD\HashedSearch\Contracts\HasSearchableHash; trait and add a new property protected $searchableHash = ['bank_name'];

Eg:

<?php

namespace App\Models;

...
use CustomD\EloquentModelEncrypt\ModelEncryption;
use CustomD\HashedSearch\Contracts\HasSearchableHash;

class EncryptedModel extends Model
{
    use ModelEncryption;
    use HasSearchableHash;


    protected $searchableHash = ['encryp_column_1','encypted_column_2'];
...
}

Now on each save event, it will update the search hash for those columns.

To search:

EncryptdModel::searchHashedField('encryp_column_1','clear text here');

Manual usage

You can manually has items by running the follwing code:

\CustomD\HashedSearch\Facades\HashedSearch::create('string to hash');

Methods

the \CustomD\HashedSearch\Facades\HashedSearch Class has the following methods

  • create(string $value, string $saltModifier = "" ): ?string
  • setSalt(string salt): SELF
  • setTransliterator(string rule): SELF
  • setHashes(?string $cypherA = null, ?string $cypherB = null): SELF

Security

An important consideration in searchable encryption is leakage, which is information an attacker can gain. Blind indexing leaks that rows have the same value. If you use this for a field like last name, an attacker can use frequency analysis to predict the values. In an active attack where an attacker can control the input values, they can learn which other values in the database match.

Here’s a great article on leakage in searchable encryption. Blind indexing has the same leakage as deterministic encryption.

Credits

统计信息

  • 总下载量: 2.64k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 6
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-04-29