loostro / cryptomute
该包已被废弃,不再维护。未建议替代包。
加密数值数据(二进制、十进制、十六进制),保留其格式(例如,16位卡号到16位加密号码)。
v1.0.3
2016-07-15 06:56 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: 2022-03-01 14:14:32 UTC
README
一个小型的PHP类,通过Feistel网络实现格式保持加密。
1. 安装
您可以通过 Composer (packagist 有 loostro/cryptomute 包) 安装 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 密码
密码是第一个构造函数参数。支持的密码方法有
密码 | IV |
---|---|
des-cbc |
是 |
aes-128-cbc |
是 |
aes-128-ecb |
否 |
aes-192-cbc |
是 |
aes-192-ecb |
否 |
camellia-128-cbc |
是 |
camellia-128-ecb |
否 |
camellia-192-cbc |
是 |
camellia-192-ecb |
否 |
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)。