Une petite classe PHP implémentant le cryptage préservant le format via le réseau Feistel.
Vous pouvez installer cryptomute via Composer (le packagiste a le package loostro/ cryptomute ). Dans votre fichier composer.json
, utilisez :
{
"require" : {
"loostro/ cryptomute " : " ^1.0 "
}
}
Et exécutez : php composer.phar install
. Après cela, vous pouvez exiger le chargeur automatique et utiliser 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 est le premier argument du constructeur. Les méthodes de chiffrement prises en charge sont :
Chiffrer | IV |
---|---|
des-cbc | Oui |
aes-128-cbc | Oui |
aes-128-ecb | Non |
aes-192-cbc | Oui |
aes-192-ecb | Non |
camellia-128-cbc | Oui |
camellia-128-ecb | Non |
camellia-192-cbc | Oui |
camellia-192-ecb | Non |
La clé est le deuxième argument du constructeur. Clé de base à partir de laquelle toutes les clés rondes sont dérivées.
Rounds est le troisième argument du constructeur. Doit être un nombre entier impair supérieur ou égal à 3. Plus de tours sont plus sûrs, mais aussi plus lents. La valeur recommandée est d'au moins 7.
$minValue
, $maxValue
)Définit les valeurs minimales et maximales. Si le résultat est hors de portée, il sera rechiffré (ou re-déchiffré) jusqu'à ce que la sortie soit dans la plage.
$plainValue
, $base
, $pad
, $password
, $iv
)Chiffre les données. Prend les arguments suivants :
$plainValue
(chaîne) à chiffrer$base
(int), les valeurs acceptées sont 2 (binaire), 10 (décimal) ou 16 (hexadécimal)$pad
(bool) pad gauche sortie pour correspondre à la longueur de $maxValue
?$password
(chaîne) mot de passe de chiffrement$iv
(chaîne) - uniquement si le chiffrement l'exige$cryptValue
, $base
, $pad
, $password
, $iv
)Décrypte les données. Prend les arguments suivants :
$cryptValue
(chaîne) à déchiffrer$base
(int), les valeurs acceptées sont 2 (binaire), 10 (décimal) ou 16 (hexadécimal)$pad
(bool) pad gauche sortie pour correspondre à la longueur de $maxValue
?$password
(chaîne) mot de passe de chiffrement$iv
(chaîne) - uniquement si le chiffrement l'exige cryptomute est sous licence The MIT License (MIT).