cryptomute
version requirements
一个小型 PHP 类,通过 Feistel 网络实现格式保留加密。
您可以通过 Composer 安装cryptomute (packagist 有 loostro/ cryptomute包)。在您的composer.json
文件中使用:
{
"require" : {
"loostro/ cryptomute " : " ^1.0 "
}
}
并运行: php composer.phar install
。之后,您可以要求自动加载器并使用cryptomute :
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"
}
Cipher 是第一个构造函数参数。支持的密码方法有:
密码 | 四号 |
---|---|
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 | 不 |
键是第二个构造函数参数。所有轮密钥均从中派生的基本密钥。
Rounds 是第三个构造函数参数。必须是大于或等于 3 的奇数。轮数越多越安全,但速度也越慢。建议值至少为 7。
$minValue
, $maxValue
)设置最小值和最大值。如果结果超出范围,它将被重新加密(或重新解密),直到输出在范围内。
$plainValue
, $base
, $pad
, $password
, $iv
)加密数据。采用以下参数:
$plainValue
(string) 输入要加密的数据$base
(int) 输入数据库,接受的值为2(二进制)、10(十进制)或16(十六进制)$pad
(bool) 填充左侧输出以匹配$maxValue
的长度?$password
(字符串) 加密密码$iv
(字符串)初始化向量 - 仅当密码需要时$cryptValue
, $base
, $pad
, $password
, $iv
)解密数据。采用以下参数:
$cryptValue
(string) 要解密的输入数据$base
(int) 输入数据库,接受的值为2(二进制)、10(十进制)或16(十六进制)$pad
(bool) 填充左侧输出以匹配$maxValue
的长度?$password
(字符串) 加密密码$iv
(字符串)初始化向量 - 仅当密码需要时cryptomute根据 MIT 许可证 (MIT) 获得许可。