คลาส PHP ขนาดเล็กที่ใช้รูปแบบการรักษาการเข้ารหัสผ่านเครือข่าย Feistel
คุณสามารถติดตั้ง cryptomute ผ่าน Composer (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 เป็นอาร์กิวเมนต์ตัวสร้างตัวแรก วิธีการเข้ารหัสที่รองรับคือ:
รหัส | 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) pad ปล่อยเอาต์พุตให้ตรงกับความยาวของ $maxValue
หรือไม่$password
(สตริง) รหัสผ่านการเข้ารหัส$iv
(สตริง) - เฉพาะในกรณีที่จำเป็นต้องใช้การเข้ารหัสเท่านั้น$cryptValue
, $base
, $pad
, $password
, $iv
)ถอดรหัสข้อมูล รับข้อโต้แย้งต่อไปนี้:
$cryptValue
(สตริง) ข้อมูลอินพุตที่จะถอดรหัส$base
(int) ค่าที่ยอมรับคือ 2 (ไบนารี), 10 (ทศนิยม) หรือ 16 (เลขฐานสิบหก)$pad
(bool) pad ปล่อยเอาต์พุตให้ตรงกับความยาวของ $maxValue
หรือไม่$password
(สตริง) รหัสผ่านการเข้ารหัส$iv
(สตริง) - เฉพาะในกรณีที่จำเป็นต้องใช้การเข้ารหัสเท่านั้น cryptomute ได้รับอนุญาตภายใต้ใบอนุญาต MIT (MIT)