Kelas PHP kecil yang mengimplementasikan Enkripsi Pelestarian Format melalui Jaringan Feistel.
Anda dapat menginstal cryptomute melalui Composer (packagist memiliki paket loostro/ cryptomute ). Dalam file composer.json
Anda gunakan:
{
"require" : {
"loostro/ cryptomute " : " ^1.0 "
}
}
Dan jalankan: php composer.phar install
. Setelah itu Anda dapat meminta autoloader dan menggunakan 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 adalah argumen konstruktor pertama. Metode sandi yang didukung adalah:
Sandi | IV |
---|---|
des-cbc | Ya |
aes-128-cbc | Ya |
aes-128-ecb | TIDAK |
aes-192-cbc | Ya |
aes-192-ecb | TIDAK |
camellia-128-cbc | Ya |
camellia-128-ecb | TIDAK |
camellia-192-cbc | Ya |
camellia-192-ecb | TIDAK |
Kuncinya adalah argumen konstruktor kedua. Kunci dasar yang menjadi asal semua kunci bulat.
Rounds adalah argumen konstruktor ketiga. Harus berupa bilangan bulat ganjil yang lebih besar atau sama dengan 3. Lebih banyak putaran lebih aman, namun juga lebih lambat. Nilai yang disarankan minimal 7.
$minValue
, $maxValue
)Menetapkan nilai minimum dan maksimum. Jika hasilnya di luar jangkauan maka akan dienkripsi ulang (atau didekripsi ulang) hingga ouput berada dalam jangkauan.
$plainValue
, $base
, $pad
, $password
, $iv
)Mengenkripsi data. Mengambil argumen berikut:
$plainValue
(string) memasukkan data yang akan dienkripsi$base
(int) memasukkan basis data, nilai yang diterima adalah 2 (biner), 10 (desimal) atau 16 (heksadesimal)$pad
(bool) pad output kiri agar sesuai dengan panjang $maxValue
?$password
(string).$iv
(string) - hanya jika cipher memerlukannya$cryptValue
, $base
, $pad
, $password
, $iv
)Mendekripsi data. Mengambil argumen berikut:
$cryptValue
(string) memasukkan data yang akan didekripsi$base
(int) memasukkan basis data, nilai yang diterima adalah 2 (biner), 10 (desimal) atau 16 (heksadesimal)$pad
(bool) pad output kiri agar sesuai dengan panjang $maxValue
?$password
(string) kata sandi enkripsi$iv
(string) vektor inisialisasi - hanya jika cipher memerlukannya cryptomute dilisensikan di bawah Lisensi MIT (MIT).