فئة 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"
}
التشفير هو وسيطة المنشئ الأولى. طرق التشفير المدعومة هي:
| التشفير | رابعا |
|---|---|
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 | لا |
المفتاح هو وسيطة المنشئ الثانية. المفتاح الأساسي الذي تشتق منه جميع المفاتيح الدائرية.
الجولات هي وسيطة المنشئ الثالثة. يجب أن يكون عددًا صحيحًا فرديًا أكبر أو يساوي 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 (MIT).