jetlee0797 / ids
加密数值数据(二进制、十进制、十六进制)并保留其格式(例如,16位卡号到16位加密号码)。
1.0.4
2017-06-21 09:19 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-20 20:16:07 UTC
README
A small PHP class implementing Format Preserving Encryption via Feistel Network.
1. 安装
您可以通过Composer(packagist有jetlee0797/cryptomute包)安装Cryptomute。在您的composer.json文件中使用
{
"require": {
"jetlee0797/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(字符串)要加密的输入数据$base(整数)输入数据基数,接受的值是2(二进制)、10(十进制)或16(十六进制)$pad(布尔值)左填充输出以匹配$maxValue的长度?$password(字符串)加密密码$iv(字符串)初始化向量 - 如果加密需要它
4.2 decrypt($cryptValue, $base, $pad, $password, $iv)
解密数据。以下参数
$cryptValue(字符串)要解密的输入数据$base(整数)输入数据基数,接受的值是2(二进制)、10(十进制)或16(十六进制)$pad(布尔值)左填充输出以匹配$maxValue的长度?$password(字符串)加密密码$iv(字符串)初始化向量 - 如果加密需要它
许可协议
Cryptomute根据MIT许可协议(MIT)许可。