البرمجة

كيفية تشفير الصورة بترميز base64 وتشفيرها مع تشفير AES-256 في PHP

لتشفير القيمة المشفرة بترميز base64 في PHP، يجب عليك أولاً تحميل الصورة وتشفيرها باستخدام base64، ثم تشفير القيمة المشفرة بهذه الطريقة باستخدام تشفير AES-256. هناك بعض التغييرات التي يجب إجراؤها في الشيفرة التي قدمتها لتحقيق ذلك. سأقدم لك تعديلات على الشيفرة لتحقيق هذا الهدف:

php
require_once 'Security.php'; define ("MAX_SIZE","1000"); $errors=0; $image = $_FILES["file"]["name"]; $uploadedfile = $_FILES['file']['tmp_name']; $filetype = $_FILES['file']['type']; if ($image) { $filename = stripslashes($_FILES['file']['name']); $extension = getExtension($filename); $extension = strtolower($extension); if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) { $error_msg = ' Unknown Image extension '; $errors=1; } else { $size=filesize($_FILES['file']['tmp_name']); if ($size > MAX_SIZE*1024) { $error_msg = "You have exceeded the size limit"; $errors=1; } if($extension=="jpg" || $extension=="jpeg" ) { $uploadedfile = $_FILES['file']['tmp_name']; $src = imagecreatefromjpeg($uploadedfile); } else if($extension=="png") { $uploadedfile = $_FILES['file']['tmp_name']; $src = imagecreatefrompng($uploadedfile); } else { $src = imagecreatefromgif($uploadedfile); } list($width,$height)=getimagesize($uploadedfile); $newwidth=600; $newheight=600; $tmp=imagecreatetruecolor($newwidth,$newheight); imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); $filename = $_FILES['file']['name']; imagejpeg($tmp,$filename,100); $encodeimage = base64_encode(file_get_contents($filename)); $encrypt_image = "data:".$filetype."base64,".$encodeimage; $security = new Security(); $publicKey = $security->genRandString(32); // Encrypt the base64 encoded value $encryptedData = $security->encrypt($encrypt_image, $publicKey); imagedestroy($src); imagedestroy($tmp); } } function getExtension($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } $id_proof = array( "filename" =>$filename, "base64_encodeimage" =>$encodeimage, "encryptedData" => $encryptedData, "error_msg" =>$error_msg ); echo json_encode($id_proof); ?>

هذا الكود يشفر القيمة المشفرة بترميز base64 بواسطة AES-256. يجب أن تتأكد من أن ملف Security.php يحتوي على الدوال اللازمة لتشفير وفك تشفير البيانات باستخدام AES-256 كما هو موضح في الشيفرة التي قدمتها.

يرجى ملاحظة أنه يجب أن تقوم بالتعديل على ملف Security.php ليتناسب مع الأسلوب الذي ترغب في استخدامه لتشفير وفك تشفير البيانات بناءً على متطلباتك الخاصة.

المزيد من المعلومات

وتحقق مما إذا كانت الامتدادات المدعومة صورة (jpg، jpeg، png، gif). ثم، قم بفحص حجم الملف للتأكد من أنه لا يتجاوز الحد الأقصى المسموح به. بعد ذلك، استخدم دوال PHP المناسبة لتحميل الصورة وتغيير حجمها إن لزم الأمر، ثم قم بترميزها باستخدام base64.

بعد ترميز الصورة، قم بتشفير القيمة المشفرة بهذه الطريقة باستخدام تشفير AES-256. يجب عليك استخدام مفتاح عشوائي للتشفير وفك التشفير. يمكنك استخدام دالة genRandString() في فئة Security لتوليد مفتاح عشوائي.

إليك كيفية تعديل الشيفرة لتحقيق ذلك:

php
// كود الصورة الذي قمت بتعديله $encodeimage = base64_encode(file_get_contents($filename)); // قم بتشفير الصورة المشفرة بترميز base64 باستخدام AES-256 $security = new Security(); $publicKey = $security->genRandString(32); $encryptedData = $security->encrypt($encodeimage, $publicKey); // تحضير بيانات الصورة للإرسال $id_proof = array( "filename" => $filename, "base64_encodeimage" => $encodeimage, "encryptedData" => $encryptedData, "error_msg" => $error_msg ); // إرسال بيانات الصورة المعالجة echo json_encode($id_proof);

هذا التعديل يضمن تشفير الصورة المشفرة بترميز base64 باستخدام AES-256، مع توليد مفتاح عشوائي للتشفير وفك التشفير.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر