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).