ggomez / anonymization
数据库匿名化模块
1.2.0
2018-07-06 13:45 UTC
Requires
- php: ^5.3.3 || ^7.0
- fzaninotto/faker: ^1.7
This package is not auto-updated.
Last update: 2024-09-22 03:37:37 UTC
README
匿名化 是一个PHP库,可以帮助您快速动态地对数据库进行匿名化。
注意:数据将永久修改
安装
composer require ggomez/anonymization
数据库匿名化模块
您只需以这种方式调用类
<?php require_once __DIR__ . '/vendor/autoload.php'; use Anonymization\Anonymization\Anonymous as Anonymous; $a = new Anonymous(); $a->start();
匿名化类构造函数接受两个参数
- 匿名化配置文件
- 匿名化配置数据库连接
然而,构造函数默认使用路径中的文件: vendor/ggomez/anonymization/src/Config
匿名化最重要的部分之一是配置文件。在上面的路径中,您将找到YML、JSON、PHP 3种允许格式的示例。
保持结构非常重要,在这种情况下,我们有一个名为 "Test" 的数据库,然后在第二部分是敏感词部分,在这一部分我们将描述所有想要更改的词,第一个是我们要更改的词,第二个是我们要添加到数据库中的词。
在第一部分仅指示要匿名化的数据库,在第二部分指定可能揭示某人身份的敏感词,最后,在最后一部分插入数据库匿名化所需的所有设置。
##Database name Data_base: Test ##Insert all sensitive information that you want to change KeyWord: Psychiatry: XXXX ##Only integer numbers Counter: 10000 ##Tables that you want to change Tables: fos_user: alias: fos_user fosu, RandomData rd mapping: email: fosu.email = |email email_canonical: email_canonical = rd.email first_name: first_name = rd.firstname last_name: last_name = rd.lastname created_by: created_by = |User#*gmail.fr updated_by: updated_by = |UserJ#* username: username = |UserL#* username_canonical: username_canonical = |UserE#* condition: " WHERE (MOD(fosu.id,1499) +1) = rd.id"
数据匿名化有3种选项
- 从给定格式生成数据
- 在这种情况下,星号字符将变为数字,例如,如果我们有一个用户名在此字段,我们将得到一个通用的格式,带有连续的数字
tiers: alias: fos_user fos, RandomData rd mapping: username: fos.username = |User#*
- 从RandomData表生成新数据
- 当执行库时,将加载一个临时表,其中包含随机数据,可用于匿名化完整表
tel: t.tel = rd.phone
- 生成新数据
- 如果您想生成随机数据,如地址或电话号码,可以使用以下语法
email: email = |email
在所有情况下,建议使用条件,特别是以下语法建议在您想使用RandomData表的情况下,这样做是为了在表的每一行中获得不同的结果
condition: ' WHERE (MOD(t.id,1499) +1) = rd.id'