دليل مستخدم DRM-X 5.0 Encryption SDK
للموظفين الفنيين — كيفية تشفير مقاطع الفيديو عن طريق استدعاء أداة التشفير من سطر الأوامر على الخادم / الموقع الإلكتروني الخاص بك
ينطبق على: DRM-X 5.0 (الإصدار الدولي com / إصدار الصين cn) · المنصات: Windows / Linux x86_64 / macOS 11.0+
جدول المحتويات
1محتويات حزمة SDK
بعد استخراج أرشيف DRM-X5.0_Encryption_SDK، يحتوي الدليل على الملفات التالية:
| الملف | الوصف |
|---|---|
| drm-x5-encrypt-sdk.exe | برنامج تشفير Windows (x64) |
| drm-x5-encrypt-sdk-linux-x86_64 | برنامج تشفير Linux (x86_64، مرتبط بشكل ثابت — لا توجد تبعيات لمكتبات مشتركة؛ يعمل مباشرة على CentOS / Ubuntu، إلخ.) |
| drm-x5-encrypt-sdk-macos-x86_64 | برنامج تشفير macOS (شريحة Intel، macOS 11.0 أو أحدث) |
| drm-x5-encrypt-sdk-macos-arm64 | برنامج تشفير macOS (شريحة Apple Silicon من سلسلة M، macOS 11.0 أو أحدث) |
| cmd.txt | أمثلة استدعاء سطر الأوامر للمنصات الثلاث |
| GetPackagerEncryptedParams.php | عرض توضيحي PHP قابل للتشغيل يستدعي خدمة الويب للحصول على معلمات التشفير (راجع القسم 4.4) |
وسائط سطر الأوامر متطابقة عبر جميع المنصات الثلاث — يختلف فقط اسم ملف البرنامج.
2نظرة عامة على سير عمل التشفير
الخطوة 1 · الحصول على معلمات التشفير
استدعِ GetPackagerEncryptedParams للحصول على ProfileEncryptedParam (أي سلسلة -profile المشفرة — اجلبها مرة واحدة وخزّنها لإعادة الاستخدام). يتم ترميز قيم Base64 لمسارات الإدخال / الإخراج محلياً بواسطة برنامجك؛ لا حاجة لاستدعاء خدمة الويب من أجلها.
الخطوة 2 · تجميع سطر الأوامر
املأ -profile الذي تم الحصول عليه والمسارات المرمزة بـ Base64 محلياً في وسائط برنامج التشفير الأربعة: -server_domain / -profile / -input_file_utf8_base64_encoded / -output_file_utf8_base64_encoded
الخطوة 3 · تشغيل التشفير
نفّذ برنامج سطر الأوامر على خادمك لإجراء التشفير.
الخطوة 4 · نشر الملفات المشفرة
ارفع / انشر الملفات المشفرة من دليل الإخراج. يتم إصدار التراخيص بواسطة خادم DRM-X 5.0 عندما يقوم المستخدمون بتشغيل المحتوى.
لماذا تستدعي خدمة ويب DRM-X 5.0 أولاً؟وسيطة -profile في برنامج التشفير ليست المعرّف الرقمي لملف ترخيص الحساب — بل هي سلسلة مشفرة مرتبطة بحسابك (ProfileEncryptedParam). لا يمكن إنشاء هذه السلسلة محلياً؛ يمكن الحصول عليها فقط من خلال خدمة الويب. وهي ترتبط بنسبة واحدة لواحد مع ProfileID، وبمجرد الحصول عليها يمكن تخزينها وإعادة استخدامها — لا تحتاج لاستدعاء خدمة الويب لكل ملف. أما قيم Base64 لمسارات الإدخال / الإخراج، فيجب ترميزها محلياً في برنامجك (راجع القسم 6) — لا حاجة لاستدعاء خدمة الويب من أجلها.
3المتطلبات الأساسية
3.1 معلومات حساب DRM-X 5.0 (تُستخرج من وحدة تحكم إدارة DRM-X)
| العنصر | الغرض |
|---|---|
| AdminEmail | عنوان البريد الإلكتروني للمسؤول، يُستخدم لمصادقة خدمة الويب. يتطلب حساباً متقدماً أو أعلى. |
| WebServiceAuthStr | سلسلة مصادقة تكامل خدمة الويب. اعرضها في وحدة التحكم الإدارية تحت "إعدادات معاملات تكامل الموقع الإلكتروني". |
| ProfileID | معرّف رقمي لملف ترخيص الحساب — يحدد ملف الترخيص المستخدم لهذا التشفير. |
3.2 متطلبات بيئة الخادم
| المنصة | المتطلبات |
|---|---|
| Windows | Windows 7 / Server 2008 R2 أو أحدث (x64) |
| Linux | بنية x86_64 (CentOS 7+ / Ubuntu 16.04+ والتوزيعات الرئيسية الأخرى). مرتبط بشكل ثابت — لا توجد تبعيات لتثبيتها. |
| macOSmacOS | macOS 11.0 أو أحدث، شريحة Intel أو Apple Silicon |
| تكامل من جهة الخادم (اختياري) | PHP 7.4+ (مع تمكين امتدادات soap و openssl)، لاستدعاء خدمة الويب تلقائياً |
تذكير أمني: WebServiceAuthStr يعادل مفتاح حساب. يجب تخزينه على جانب الخادم فقط — لا تضعه أبداً في صفحات الويب الأمامية أو برامج العميل أو المستودعات العامة.
4الخطوة الأولى: استدعاء خدمة ويب DRM-X 5.0 للحصول على معلمات التشفير
4.1 معلومات خدمة الويب
| العنصر | القيمة |
|---|---|
| نقطة نهاية دولية | https://5.drm-x.com/haihaisoftlicenseservice.asmx |
| نقطة نهاية صينية | https://5.drm-x.cn/haihaisoftlicenseservice.asmx |
| اسم الطريقة | GetPackagerEncryptedParams |
| البروتوكول | SOAP 1.1 (POST) |
| SOAPAction | http://tempuri.org/ASPNET.StarterKit.Commerce/HaihaisoftLicenseService/GetPackagerEncryptedParams |
يجب أن تتطابق نقطة النهاية مع إصدار حسابك: الحسابات الدولية تستخدم 5.drm-x.com (سطر الأوامر: -server_domain com)؛ حسابات الصين تستخدم 5.drm-x.cn (سطر الأوامر: -server_domain cn). استخدام الإصدار الخاطئ سيؤدي إلى فشل المصادقة، أو جعل الملفات المشفرة غير قابلة للتشغيل.
4.2 معلمات الطلب
| المعامل | مطلوب | الوصف |
|---|---|---|
| AdminEmail | نعم | عنوان البريد الإلكتروني لمسؤول DRM-X 5.0 |
| WebServiceAuthStr | نعم | سلسلة مصادقة خدمة الويب |
| ProfileID | نعم | معرّف ملف ترخيص الحساب (رقمي؛ لا حاجة للترميز) |
| Input | نعم | المسار الكامل للملف المراد تشفيره (سلسلة نصية عادية؛ لا حاجة للترميز) |
| Output | نعم | المسار الكامل لملف الإخراج المشفر |
| ProfileEncryptedParam / enc_Input / enc_Output | لا | حقول محجوزة — مرر عادةً سلسلة فارغة |
4.3 التعيين بين حقول الاستجابة ووسائط سطر الأوامر (الأساسية)
| حقل الاستجابة | وسيطة سطر الأوامر | الوصف |
|---|---|---|
| ProfileEncryptedParam | -profile | سلسلة ملف ترخيص مشفرة مرتبطة بحسابك (URL-Safe Base64، تحتوي على - و _). يجب أن تستخدم القيمة المُعادة بواسطة خدمة الويب — لا تمرر أبداً المعرّف الرقمي لـ ProfileID، ولا تقم بترميزها بنفسك. يجب جلبها مرة واحدة فقط لكل ProfileID ويمكن بعد ذلك تخزينها وإعادة استخدامها على المدى الطويل — لا حاجة لاستدعاء خدمة الويب لكل ملف. |
| enc_Input | -input_file_utf8_base64_encoded | مسار الإدخال المرمز بـ Base64 بصيغة UTF-8. يُوصى بترميزه محلياً في برنامجك (PHP: base64_encode()؛ في اللغات الأخرى، حوّل أولاً إلى بايتات UTF-8، ثم Base64 — راجع القسم 6). لا حاجة لاستدعاء خدمة الويب من أجل ذلك؛ قيمة enc_Input المُعادة بواسطة الخدمة تعمل أيضاً بشكل جيد. |
| enc_Output | -output_file_utf8_base64_encoded | مسار الإخراج المرمز بـ Base64 بصيغة UTF-8. يُوصى بترميزه محلياً (نفس الطريقة المذكورة أعلاه)؛ قيمة enc_Output المُعادة بواسطة الخدمة تعمل أيضاً. |
| GetPackagerEncryptedParamsResult | — | نص الحالة / الرسالة. ملاحظة: |
4.4 مثال الاستدعاء (PHP / SoapClient)
خدمة الويب هذه هي خدمة SOAP 1.1 قياسية يمكن استدعاؤها من أي لغة، بنفس الطريقة الموحدة: أرسل POST لظرف SOAP إلى نقطة النهاية المذكورة في 4.1 (أو اجعل عميل SOAP يُنشئه تلقائياً من ?WSDL)، مرر المعلمات من 4.2، ثم اقرأ الحقول الثلاثة من 4.3 في الاستجابة. مكتبات عميل SOAP الشائعة حسب اللغة:
| اللغة / المنصة | عملاء SOAP الشائعون |
|---|---|
| PHP | صنف SoapClient المدمج (يُستخدم في هذا الدليل، وضع WSDL) |
| Java | JAX-WS (wsimport)، Apache Axis2، Apache CXF |
| Python | zeep、suds |
| C# / .NET | Visual Studio "إضافة مرجع خدمة"، أو SvcUtil |
| Node.js | حزمة soap |
يستخدم المثال التالي SoapClient في PHP لعرض الاستدعاء الكامل. احفظ الكود باسم get_params.php على خادمك وقم بتشغيله (PHP 7.4+ مع تمكين امتداد soap) — سيطبع قيم وسائط سطر الأوامر الثلاث:
ملاحظات SoapClient:
- يجب تثبيت وتفعيل امتداد php-soap (على Windows، أزل التعليق عن extension=soap في php.ini؛ على Linux، ثبّت حزمة php-soap).
- الأخطاء التجارية مثل فشل المصادقة لا تُطلق SoapFault. تُعيد الخدمة HTTP 200 مع استجابة صحيحة التكوين، ونص الخطأ موجود في GetPackagerEncryptedParamsResult. حدد النجاح دائماً بالتحقق من قيم الحقول كما هو موضح في 4.3.
- للتصحيح، استخدم var_dump($client->__getLastRequest()) لفحص ظرف الطلب الفعلي.
5الخطوة الثانية: تشغيل أمر التشفير
5.1 الاستخدام الأول (Linux / macOS)
في الطرفية، انتقل إلى دليل البرنامج وامنح إذن التنفيذ أولاً:
5.2 قوالب أوامر تشفير الملف الواحد
Windows (cmd / PowerShell):
Linux:
macOS:
5.3 مرجع الوسائط
| الوسيطة | الوصف |
|---|---|
| -server_domain | إصدار خادم DRM-X 5.0 المستهدف: com = دولي، cn = الصين. يجب أن يتطابق مع منصة حسابك ونقطة نهاية خدمة الويب المستخدمة في الخطوة 4. |
| -profile | سلسلة ملف ترخيص الحساب المشفرة — قيمة ProfileEncryptedParam الكاملة المُعادة بواسطة خدمة الويب (URL-Safe Base64، تحتوي على - و _). لا تمرر أبداً معرّفاً رقمياً، ولا تقم بترميزها بـ Base64 بنفسك، ولا تضف أو تحذف أحرفاً لاحقة. يجب جلبها مرة واحدة فقط لكل ProfileID ويمكن بعد ذلك تخزينها وإعادة استخدامها على المدى الطويل. |
| -input_file_utf8_base64_encoded | مسار ملف الإدخال المرمز بـ Base64 بصيغة UTF-8. يُوصى بترميزه محلياً (مثلاً base64_encode($path) في PHP، راجع القسم 6)؛ قيمة enc_Input المُعادة بواسطة الخدمة تعمل أيضاً. يتم دعم المسارات المطلقة والنسبية، وقد تحتوي المسارات على أحرف غير ASCII ومسافات. |
| -output_file_utf8_base64_encoded | مسار ملف الإخراج المرمز بـ Base64 بصيغة UTF-8. يُوصى بترميزه محلياً (نفس الطريقة المذكورة أعلاه)؛ قيمة enc_Output المُعادة بواسطة الخدمة تعمل أيضاً. يجب أن يكون الدليل الأصلي للإخراج موجوداً مسبقاً — البرنامج لا ينشئه. |
5.4 أمثلة كاملة
Windows:
هنا RDpcSmFzb25c... تفك ترميزها إلى D:\Jason\input\01-testVideo.mp4.
Linux:
هذا يشفر ./input/01-linux-encrypt-video.mp4 → ./output/01-linux-encrypt-video2_P.mp4.
5.5 التحقق من النتيجة
- عند انتهاء البرنامج، تحقق من إنشاء ملف مشفر في دليل الإخراج (يُوصى بإضافة لاحقة _P للتمييز، مثلاً course01_P.mp4)؛
- يتطلب التشفير وصولاً إلى شبكة خادم DRM-X. تأكد من أن جدار الحماية / مجموعة الأمان يسمح بالوصول الصادر إلى 5.drm-x.com أو 5.drm-x.cn؛
- يُوصى بالتحقق من سير العمل الكامل باستخدام مقطع فيديو تجريبي صغير قبل تشفير المحتوى الإنتاجي دفعة واحدة.
6ترميز Base64 لمسارات الإدخال / الإخراج (يُوصى بالترميز المحلي)
الممارسة الموصى بها: أنشئ قيم -input_file_utf8_base64_encoded / -output_file_utf8_base64_encoded عن طريق ترميزها في برنامجك الخاص — لا حاجة لاستدعاء خدمة الويب لكل ملف. قاعدة الترميز: حوّل أولاً سلسلة المسار إلى بايتات UTF-8، ثم طبّق ترميز Base64 القياسي. ملاحظة: يجب حفظ ملفات المصدر الخاصة بك بصيغة UTF-8 (هذا مهم خصوصاً للمسارات غير ASCII؛ على Windows، لا تستخدم ترميز ANSI / GBK). أمثلة حسب اللغة:
| اللغة / البيئة | مثال (ترميز المسار /home/video/course01.mp4) |
|---|---|
| PHP | base64_encode('/home/video/course01.mp4') |
| Java | Base64.getEncoder().encodeToString(path.getBytes(StandardCharsets.UTF_8)) |
| Python | base64.b64encode(path.encode('utf-8')).decode() |
| C# / .NET | Convert.ToBase64String(Encoding.UTF8.GetBytes(path)) |
| Node.js | Buffer.from(path, 'utf8').toString('base64') |
| Linux / macOS shell | printf '%s' "/home/video/course01.mp4" | base64 |
| Windows PowerShell | [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("C:\video\course01.mp4")) |
للتأكيد مرة أخرى: لا توجد طريقة لإنشاء وسيطة -profile محلياً. إنها سلسلة مشفرة مرتبطة بحسابك ولا يمكن الحصول عليها إلا من خلال خدمة ويب GetPackagerEncryptedParams.
7أمثلة على الأتمتة من جهة الخادم
يُتيح ربط "الحصول على المعلمات + استدعاء برنامج التشفير" تشفيراً بنقرة واحدة من لوحة تحكم موقعك، أو تشفيراً مجدولاً دفعة واحدة. يستدعي مثال PHP التالي برنامج تشفير Linux (متابعةً للكود في القسم 4.4؛ في وقت التشغيل، يجب قراءة $profile من ذاكرة التخزين المؤقت أولاً، واستدعاء خدمة الويب في 4.4 فقط عند عدم وجود قيمة مخزنة):
مثال على سكريبت Shell لتشفير دفعة (Linux — يرمز المسارات محلياً، ثم يشفر كل ملف):
الممارسة الموصى بها: اجلب ProfileEncryptedParam لملف ترخيص الحساب (ProfileID) معين مرة واحدة عبر خدمة الويب وخزّنه لإعادة الاستخدام — لا تستدعي خدمة الويب لكل ملف مشفر. أنشئ مكافئات enc_Input / enc_Output مباشرةً عن طريق ترميز المسارات بـ Base64 (UTF-8) على خادمك (في PHP: base64_encode($path)، راجع القسم 6) — لا حاجة لاستدعاء خدمة الويب. عند التشفير الدفعي، حدّ من التزامن (مثلاً 2-4 عمليات تشفير لكل خادم) لتجنب إشباع النطاق الترددي ووحدة المعالجة المركزية.
8الأسئلة الشائعة (FAQ)
س1: تُعيد خدمة الويب رسالة "Your XML web service login info is not correct..."
AdminEmail أو WebServiceAuthStr غير صحيح. تحقق من كليهما في وحدة تحكم إدارة DRM-X؛ تأكد من أن القيم لا تحتوي على مسافات بادئة أو لاحقة. لاحظ أيضاً أنه حتى مع هذا الخطأ فإن رمز حالة HTTP لا يزال 200 — يجب على برنامجك تحديد النجاح من خلال فحص حقول الاستجابة، وليس رمز حالة HTTP.
س2: تمرير المعرّف الرقمي (مثلاً 1001) مباشرةً إلى -profile يسبب خطأً
-profile يجب أن يكون سلسلة ProfileEncryptedParam المشفرة الكاملة المُعادة بواسطة خدمة الويب — وليس المعرّف الرقمي لـ ProfileID. يُستخدم المعرّف الرقمي فقط عند استدعاء خدمة الويب.
س3: يحتوي المسار على أحرف غير ASCII أو مسافات ويفشل التشفير؟
يتم نقل المسارات كـ Base64، وتُدعم الأحرف غير ASCII والمسافات بالكامل. المفتاح هو أن الترميز يجب أن يستخدم UTF-8: على Windows، قد يستخدم Notepad / cmd ترميز ANSI (GBK) افتراضياً، مما يُتلف المسار بعد فك ترميز Base64. رمّز المسارات بصيغة UTF-8 في برنامجك كما هو موضح في القسم 6 (مع ملف مصدر PHP محفوظ بصيغة UTF-8، base64_encode() العادية تعمل مباشرةً؛ يمكن تحويل السلاسل المرمزة بـ GBK القديمة أولاً باستخدام iconv('GBK', 'UTF-8', $path) أو mb_convert_encoding() قبل الترميز).
س4: يُبلغ البرنامج عن فشل الإخراج / عدم العثور على دليل الإخراج
يجب إنشاء الدليل الأصلي لملف الإخراج مقدماً (مثلاً mkdir -p ./output). تحقق أيضاً من أن المستخدم الذي يُشغل البرنامج لديه إذن الكتابة في ذلك الدليل.
س5: يقول macOS إن البرنامج "لا يمكن فتحه لأنه لا يمكن التحقق من المطور"
البرنامج غير معتمد من Apple، لذا يمنع Gatekeeper التشغيل الأول. اختر أحد الحلين: ① نفّذ xattr -d com.apple.quarantine ./drm-x5-encrypt-sdk-macos-arm64 في الطرفية لإزالة علامة الحجر الصحي؛ ② أو انقر على "فتح بأي حال" في إعدادات النظام → الخصوصية والأمان.
س6: على Linux لا يمكن تنفيذ البرنامج (Permission denied أو خطأ في التنسيق)
نفّذ chmod +x drm-x5-encrypt-sdk-linux-x86_64 أولاً. إذا حصلت على "cannot execute binary file"، تأكد من أن الخادم x86_64 (uname -m). الحزمة الحالية تحتوي على إصدارات x86_64 فقط؛ لخوادم ARM يرجى الاتصال بـ Haihaisoft.
س7: هل يجب أن أستخدم com أم cn؟ ماذا يحدث إذا اخترت الخاطئ؟
يجب أن يتطابق مع منصة حساب DRM-X: الحسابات الدولية تستخدم com (وتستدعي 5.drm-x.com)، حسابات الصين تستخدم cn (وتستدعي 5.drm-x.cn). عدم التطابق يسبب فشل المصادقة، أو معلمات تشفير لا تتطابق مع المنصة.
س8: كيف أتحقق من الملفات المشفرة؟
افتح ملفات الإخراج في مشغل عرض DRM-X 5.0 التجريبي / مشغلك المدمج وتأكد: التشغيل محظور بدون ترخيص، ويعمل بشكل طبيعي بعد تفويض مستخدم تجريبي في وحدة التحكم الإدارية. تحقق على نطاق صغير قبل التشفير الإنتاجي بالجملة.
9ملاحظات وأفضل الممارسات
- احتفظ بالملفات الأصلية: اكتب الإخراج إلى موقع جديد أو اسم ملف جديد (مثلاً بإضافة لاحقة _P) حتى لا تُستبدل مقاطع الفيديو الأصلية أبداً.
- الصغير قبل الكبير: عند استخدام ملف ترخيص جديد أو خادم جديد لأول مرة، شغّل مقطع فيديو تجريبي قصير عبر سير العمل الكامل "جلب المعلمات → تشفير → تشغيل مرخص" قبل المعالجة الدفعية.
- لا تعدّل الوسائط يدوياً أبداً: -profile سلسلة Base64 مشفرة — انسخها بالكامل (بدون مسافات إضافية بادئة/لاحقة، بدون اقتطاع بسبب التفاف الأسطر).
- احتفظ بسرية سلسلة المصادقة: WebServiceAuthStr يخص تكوين الخادم فقط؛ لا تنشر أدوات ويب تجريبية مثل GetPackagerEncryptedParams.php على الإنترنت العام.
- متطلبات الشبكة: أثناء التشفير، يجب أن يصل الخادم إلى خوادم DRM-X (الدولية 5.drm-x.com / الصين 5.drm-x.cn)؛ اسمح بمنفذ 443 الصادر إذا كان هناك جدار حماية.
دروس تعليمية أخرى لـ DRM-X 5.0
فيديو مقدمة DRM-X 5.0DRM-X 5.0 هو جيل جديد من منصة برمجيات التشفير. توفر Haihaisoft دروس فيديو تجريبية شائعة لـ DRM-X 5.0، بما في ذلك مقدمة DRM-X 5.0، ودرس تعليمي لتشفير الفيديو، ودرس تعليمي لتشفير صفحات الويب، وكيفية تضمين مشغل فيديو HTML5.
شاهد الآن
كيفية حماية مقاطع الفيديو باستخدام DRM-X 5.0 ZJGet لنظام Windowsسيوضح هذا الفيديو كيفية تشفير الملفات على Windows باستخدام متصفح ZJGet.
شاهد الآن
كيفية حماية مقاطع الفيديو باستخدام DRM-X 5.0 ZJGet لنظام macOSسيوضح هذا الفيديو كيفية تشفير الملفات على macOS باستخدام متصفح ZJGet.
شاهد الآن
البدء مع DRM-X 5.0 ZJGet لنظام Windowsسيوضح لك هذا الفيديو كيفية تنزيل الملفات المشفرة وتثبيتها وفتحها على ويندوز باستخدام متصفح ZJGet.
شاهد الآن
دليل مستخدم DRM-X 5.0 ZJGetدليل مستخدم متصفح ZJGet. سيساعدك هذا الدليل على إتقان الميزات الأساسية والنصائح العملية لمتصفح ZJGet بسهولة.
شاهد الآن
الأسئلة الشائعة لـ DRM-X 5.0 ZJGetالأسئلة الشائعة حول استخدام متصفح ZJGet. يجمع هذا القسم أكثر الأسئلة والأجوبة فائدة لمساعدتك في التغلب على أي عقبات قد تواجهها.
شاهد الآن