Небольшой PHP-класс, реализующий шифрование с сохранением формата через сеть Feistel.
Вы можете установить cryptomute через Composer (у пакета есть пакет 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 — это первый аргумент конструктора. Поддерживаемые методы шифрования:
Шифр | 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 | нет |
Ключ — второй аргумент конструктора. Базовый ключ, из которого получаются все раундовые ключи.
Rounds — третий аргумент конструктора. Должно быть нечетное целое число, большее или равное 3. Чем больше раундов, тем безопаснее, но и медленнее. Рекомендуемое значение — не менее 7.
$minValue
, $maxValue
)Устанавливает минимальное и максимальное значения. Если результат выходит за пределы диапазона, он будет повторно зашифрован (или повторно расшифрован) до тех пор, пока выходные данные не попадут в диапазон.
$plainValue
, $base
, $pad
, $password
, $iv
)Шифрует данные. Принимает следующие аргументы:
$plainValue
(строка) входные данные для шифрования$base
(int) база входных данных, допустимые значения: 2 (двоичные), 10 (десятичные) или 16 (шестнадцатеричные).$pad
(bool) дополнить левый вывод, чтобы он соответствовал длине $maxValue
?$password
(строка) пароль шифрования$iv
(строка) вектор инициализации - только если этого требует шифр$cryptValue
, $base
, $pad
, $password
, $iv
)Расшифровывает данные. Принимает следующие аргументы:
$cryptValue
(строка) входные данные для расшифровки$base
(int) база входных данных, допустимые значения: 2 (двоичные), 10 (десятичные) или 16 (шестнадцатеричные).$pad
(bool) дополнить левый вывод, чтобы он соответствовал длине $maxValue
?$password
(строка) пароль шифрования$iv
(строка) вектор инициализации - только если этого требует шифр cryptomute распространяется под лицензией MIT License (MIT).