jetlee0797 / humanid
加密数值数据(二进制、十进制、十六进制),同时保留其格式(例如,16位卡号加密为16位加密数)。
dev-master / 1.0.x-dev
2017-06-21 07:05 UTC
Requires
- php: ^5.6.1 || ~7.0
- ext-gmp: *
Requires (Dev)
- phpunit/phpunit: ~4.8 || ~5.0
This package is not auto-updated.
Last update: 2024-09-24 17:09:04 UTC
README
一个小型PHP类,通过Feistel网络实现格式保留加密。
1. 安装
您可以通过 Composer 安装 Cryptomute(packagist有 loostro/cryptomute 包)。在您的 composer.json 文件中使用
{
"require": {
"loostro/cryptomute": "^1.0"
}
}
然后运行: php composer.phar install。之后您可以使用自动加载器并使用 Cryptomute
2. 使用方法
require_once 'vendor/autoload.php'; use Cryptomute\Cryptomute; $cryptomute = new Cryptomute( 'aes-128-cbc', // cipher '0123456789zxcvbn', // base key 7, // number of rounds ); $password = '0123456789qwerty'; $iv = '0123456789abcdef'; $plainValue = '2048'; $encoded = $cryptomute->encrypt($plainValue, 10, false, $password, $iv); $decoded = $cryptomute->decrypt($encoded, 10, false, $password, $iv); var_dump([ 'plainValue' => $plainValue, 'encoded' => $encoded, 'decoded' => $decoded, ]);
array(3) {
["plainValue"]=>
string(4) "2048"
["encoded"]=>
string(9) "309034283"
["decoded"]=>
string(4) "2048"
}
3. 选项
3.1 密码
密码是第一个构造函数参数。支持的密码方法是
3.2 密钥
密钥是第二个构造函数参数。所有轮密钥都从基本密钥派生。
3.3 轮数
轮数是第三个构造函数参数。必须是大于或等于3的奇数。轮数越多越安全,但速度也越慢。推荐值至少为7。
4. 公共方法
4.1 setValueRange($minValue, $maxValue)
设置最小和最大值。如果结果超出范围,它将被重新加密(或解密)直到输出在范围内。
4.2 encrypt($plainValue, $base, $pad, $password, $iv)
加密数据。以下参数:
$plainValue(string) 要加密的输入数据$base(int) 输入数据基数,接受值为2(二进制)、10(十进制)或16(十六进制)$pad(bool) 是否将输出左填充以匹配$maxValue的长度?$password(string) 加密密码$iv(string) 初始化向量 - 如果密码要求则使用
4.2 decrypt($cryptValue, $base, $pad, $password, $iv)
解密数据。以下参数:
$cryptValue(string) 要解密的数据$base(int) 输入数据基数,接受值为2(二进制)、10(十进制)或16(十六进制)$pad(bool) 是否将输出左填充以匹配$maxValue的长度?$password(string) 加密密码$iv(string) 初始化向量 - 如果密码要求则使用
许可证
Cryptomute 使用 MIT许可证(MIT) 许可。