Panduan Pengguna DRM-X 5.0 Encryption SDK
Untuk staf teknis — cara mengenkripsi video dengan memanggil alat enkripsi dari baris perintah di server / situs web Anda sendiri
Berlaku untuk: DRM-X 5.0 (edisi internasional com / edisi China cn) · Platform: Windows / Linux x86_64 / macOS 11.0+
Daftar Isi
1Isi Paket SDK
Setelah mengekstrak arsip DRM-X5.0_Encryption_SDK, direktori berisi file-file berikut:
| File | Deskripsi |
|---|---|
| drm-x5-encrypt-sdk.exe | Program enkripsi Windows (x64) |
| drm-x5-encrypt-sdk-linux-x86_64 | Program enkripsi Linux (x86_64, ditautkan secara statis — tanpa dependensi pustaka bersama; berjalan langsung di CentOS / Ubuntu, dll.) |
| drm-x5-encrypt-sdk-macos-x86_64 | Program enkripsi macOS (chip Intel, macOS 11.0 atau lebih baru) |
| drm-x5-encrypt-sdk-macos-arm64 | Program enkripsi macOS (chip Apple Silicon seri M, macOS 11.0 atau lebih baru) |
| cmd.txt | Contoh pemanggilan baris perintah untuk ketiga platform |
| GetPackagerEncryptedParams.php | Demo PHP yang dapat dijalankan yang memanggil Layanan Web untuk mendapatkan parameter enkripsi (lihat Bagian 4.4) |
Argumen baris perintah identik di ketiga platform — hanya nama file program yang berbeda.
2Ikhtisar Alur Kerja Enkripsi
LANGKAH 1 · Dapatkan parameter enkripsi
Panggil GetPackagerEncryptedParams untuk mendapatkan ProfileEncryptedParam (yaitu string terenkripsi -profile — ambil sekali dan simpan dalam cache untuk digunakan kembali). Nilai Base64 dari jalur input / output dikodekan secara lokal oleh program Anda; tidak perlu memanggil Layanan Web untuk itu.
LANGKAH 2 · Susun baris perintah
Isikan -profile yang diperoleh dan jalur yang dikodekan Base64 secara lokal ke dalam empat argumen program enkripsi: -server_domain / -profile / -input_file_utf8_base64_encoded / -output_file_utf8_base64_encoded
LANGKAH 3 · Jalankan enkripsi
Jalankan program baris perintah di server Anda untuk melakukan enkripsi.
LANGKAH 4 · Publikasikan file terenkripsi
Unggah / publikasikan file terenkripsi dari direktori output. Lisensi diterbitkan oleh server DRM-X 5.0 saat pengguna memutar konten.
Mengapa memanggil Layanan Web DRM-X 5.0 terlebih dahulu?Argumen -profile program enkripsi bukanlah ID numerik dari profil lisensi — melainkan string terenkripsi yang terikat pada akun Anda (ProfileEncryptedParam). String ini tidak dapat dihasilkan secara lokal; hanya dapat diperoleh melalui Layanan Web. String ini dipetakan satu-ke-satu ke ProfileID, dan setelah diperoleh dapat disimpan dalam cache dan digunakan kembali — Anda tidak perlu memanggil Layanan Web untuk setiap file. Nilai Base64 dari jalur input / output, sebaliknya, harus dikodekan secara lokal di program Anda (lihat Bagian 6) — tidak perlu panggilan Layanan Web untuk itu.
3Prasyarat
3.1 Informasi Akun DRM-X 5.0 (diperoleh dari konsol admin DRM-X)
| Item | Tujuan |
|---|---|
| AdminEmail | Alamat email administrator, digunakan untuk autentikasi Layanan Web. Memerlukan akun Advanced atau lebih tinggi. |
| WebServiceAuthStr | String autentikasi integrasi Layanan Web. Lihat di konsol admin di bawah "Website Integration Parameter Settings". |
| ProfileID | ID profil lisensi numerik — menentukan profil lisensi mana yang digunakan untuk enkripsi ini. |
3.2 Persyaratan Lingkungan Server
| Platform | Persyaratan |
|---|---|
| Windows | Windows 7 / Server 2008 R2 atau lebih baru (x64) |
| Linux | Arsitektur x86_64 (CentOS 7+ / Ubuntu 16.04+ dan distribusi utama lainnya). Ditautkan secara statis — tidak ada dependensi yang perlu diinstal. |
| macOSmacOS | macOS 11.0 atau lebih baru, chip Intel atau Apple Silicon |
| Integrasi sisi server (opsional) | PHP 7.4+ (dengan ekstensi soap dan openssl diaktifkan), untuk memanggil Layanan Web secara otomatis |
Pengingat keamanan: WebServiceAuthStr setara dengan kunci akun. Harus disimpan hanya di sisi server — jangan pernah menempatkannya di halaman web front-end, perangkat lunak klien, atau repositori publik.
4Langkah Satu: Panggil Layanan Web DRM-X 5.0 untuk Mendapatkan Parameter Enkripsi
4.1 Informasi Layanan Web
| Item | Nilai |
|---|---|
| Endpoint internasional | https://5.drm-x.com/haihaisoftlicenseservice.asmx |
| Endpoint China | https://5.drm-x.cn/haihaisoftlicenseservice.asmx |
| Nama metode | GetPackagerEncryptedParams |
| Protokol | SOAP 1.1 (POST) |
| SOAPAction | http://tempuri.org/ASPNET.StarterKit.Commerce/HaihaisoftLicenseService/GetPackagerEncryptedParams |
Endpoint harus sesuai dengan edisi akun Anda: akun internasional menggunakan 5.drm-x.com (baris perintah: -server_domain com); akun China menggunakan 5.drm-x.cn (baris perintah: -server_domain cn). Menggunakan edisi yang salah akan menyebabkan autentikasi gagal, atau file terenkripsi tidak dapat diputar.
4.2 Parameter Permintaan
| Parameter | Wajib | Deskripsi |
|---|---|---|
| AdminEmail | Ya | Alamat email administrator DRM-X 5.0 |
| WebServiceAuthStr | Ya | String autentikasi Layanan Web |
| ProfileID | Ya | ID profil lisensi (numerik; tidak perlu pengodean) |
| Input | Ya | Jalur lengkap file yang akan dienkripsi (string biasa; tidak perlu pengodean) |
| Output | Ya | Jalur lengkap file output terenkripsi |
| ProfileEncryptedParam / enc_Input / enc_Output | Tidak | Bidang yang dicadangkan — biasanya lewati string kosong |
4.3 Pemetaan Antara Bidang Respons dan Argumen Baris Perintah (Inti)
| Bidang respons | Argumen baris perintah | Deskripsi |
|---|---|---|
| ProfileEncryptedParam | -profile | String profil lisensi terenkripsi yang terikat pada akun Anda (Base64 Aman-URL, berisi - dan _). Anda harus menggunakan nilai yang dikembalikan oleh Layanan Web — jangan pernah memberikan ID Profil numerik, dan jangan pernah mengodekannya sendiri. Hanya perlu diambil sekali per ProfileID dan kemudian dapat disimpan dalam cache dan digunakan kembali dalam jangka panjang — tidak perlu memanggil Layanan Web untuk setiap file. |
| enc_Input | -input_file_utf8_base64_encoded | Jalur input yang dikodekan Base64 UTF-8. Mengodekannya secara lokal di program Anda disarankan (PHP: base64_encode(); dalam bahasa lain, konversikan ke byte UTF-8 terlebih dahulu, lalu Base64 — lihat Bagian 6). Tidak perlu panggilan Layanan Web untuk ini; nilai enc_Input yang dikembalikan oleh layanan juga berfungsi dengan baik. |
| enc_Output | -output_file_utf8_base64_encoded | Jalur output yang dikodekan Base64 UTF-8. Mengodekannya secara lokal disarankan (metode yang sama seperti di atas); nilai enc_Output yang dikembalikan oleh layanan juga berfungsi. |
| GetPackagerEncryptedParamsResult | — | Teks status / pesan. Catatan: |
4.4 Contoh Pemanggilan (PHP / SoapClient)
Layanan Web ini adalah layanan SOAP 1.1 standar yang dapat dipanggil dari bahasa apa pun, dengan cara yang sama dan seragam: POST envelope SOAP ke endpoint yang tercantum di 4.1 (atau minta klien SOAP menghasilkannya secara otomatis dari ?WSDL), lewati parameter dari 4.2, lalu baca tiga bidang dari 4.3 dalam respons. Pustaka klien SOAP umum berdasarkan bahasa:
| Bahasa / Platform | Klien SOAP umum |
|---|---|
| PHP | Kelas SoapClient bawaan (digunakan dalam panduan ini, mode WSDL) |
| Java | JAX-WS (wsimport), Apache Axis2, Apache CXF |
| Python | zeep、suds |
| C# / .NET | Visual Studio "Add Service Reference", atau SvcUtil |
| Node.js | Paket soap |
Contoh berikut menggunakan SoapClient PHP untuk mendemonstrasikan panggilan lengkap. Simpan kode sebagai get_params.php di server Anda dan jalankan (PHP 7.4+ dengan ekstensi soap diaktifkan) — ini mencetak tiga nilai argumen baris perintah:
Catatan SoapClient:
- Ekstensi php-soap harus diinstal dan diaktifkan (di Windows, hapus komentar extension=soap di php.ini; di Linux, instal paket php-soap).
- Kesalahan bisnis seperti autentikasi gagal TIDAK melempar SoapFault. Layanan tetap mengembalikan HTTP 200 dengan respons yang terbentuk dengan baik, dan teks kesalahan ada di GetPackagerEncryptedParamsResult. Selalu tentukan keberhasilan dengan memeriksa nilai bidang seperti yang dijelaskan di 4.3.
- Untuk debugging, gunakan var_dump($client->__getLastRequest()); untuk memeriksa envelope permintaan yang sebenarnya.
5Langkah Dua: Jalankan Perintah Enkripsi
5.1 Penggunaan Pertama (Linux / macOS)
Di terminal, masuk ke direktori program dan berikan izin eksekusi terlebih dahulu:
5.2 Templat Perintah Enkripsi File Tunggal
Windows (cmd / PowerShell):
Linux:
macOS:
5.3 Referensi Argumen
| Argumen | Deskripsi |
|---|---|
| -server_domain | Edisi server DRM-X 5.0 target: com = Internasional, cn = China. Harus sesuai dengan platform akun Anda dan endpoint Layanan Web yang digunakan di Langkah 4. |
| -profile | String profil lisensi terenkripsi — nilai lengkap ProfileEncryptedParam yang dikembalikan oleh Layanan Web (Base64 Aman-URL, berisi - dan _). Jangan memberikan ID numerik, jangan mengodekannya sendiri dengan Base64, dan jangan menambah atau menghapus karakter di akhir. Hanya perlu diambil sekali per ProfileID dan kemudian dapat disimpan dalam cache dan digunakan kembali dalam jangka panjang. |
| -input_file_utf8_base64_encoded | Jalur file input yang dikodekan Base64 UTF-8. Mengodekannya secara lokal disarankan (misalnya base64_encode($path) PHP, lihat Bagian 6); nilai enc_Input yang dikembalikan oleh layanan juga berfungsi. Baik jalur absolut maupun relatif didukung, dan jalur dapat berisi karakter non-ASCII dan spasi. |
| -output_file_utf8_base64_encoded | Jalur file output yang dikodekan Base64 UTF-8. Mengodekannya secara lokal disarankan (metode yang sama seperti di atas); nilai enc_Output yang dikembalikan oleh layanan juga berfungsi. Direktori induk output harus sudah ada — program tidak membuatnya. |
5.4 Contoh Lengkap
Windows:
Di sini RDpcSmFzb25c... didekode menjadi D:\Jason\input\01-testVideo.mp4.
Linux:
Ini mengenkripsi ./input/01-linux-encrypt-video.mp4 → ./output/01-linux-encrypt-video2_P.mp4.
5.5 Memverifikasi Hasil
- Saat program selesai, periksa bahwa file terenkripsi telah dibuat di direktori output (sufiks _P disarankan untuk membedakannya, misalnya course01_P.mp4);
- Enkripsi memerlukan akses jaringan ke server DRM-X. Pastikan firewall / grup keamanan Anda mengizinkan akses keluar ke 5.drm-x.com atau 5.drm-x.cn;
- Disarankan untuk memverifikasi alur kerja lengkap dengan video uji kecil sebelum mengenkripsi konten produksi secara batch.
6Pengodean Base64 pada Jalur Input / Output (Pengodean Lokal Disarankan)
Praktik yang disarankan: hasilkan nilai -input_file_utf8_base64_encoded / -output_file_utf8_base64_encoded dengan mengodekannya di program Anda sendiri — tidak perlu memanggil Layanan Web sekali per file. Aturan pengodean: pertama konversikan string jalur ke byte UTF-8, lalu terapkan pengodean Base64 standar. Catatan: file sumber Anda harus disimpan sebagai UTF-8 (ini penting terutama untuk jalur non-ASCII; di Windows, jangan gunakan pengodean ANSI / GBK). Contoh berdasarkan bahasa:
| Bahasa / lingkungan | Contoh (mengodekan jalur /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")) |
Untuk menegaskan kembali: tidak ada cara untuk menghasilkan argumen -profile secara lokal. Ini adalah string terenkripsi yang terikat pada akun Anda dan hanya dapat diperoleh melalui Layanan Web GetPackagerEncryptedParams.
7Contoh Otomatisasi Sisi Server
Merangkai "dapatkan parameter + panggil program enkripsi" memungkinkan enkripsi sekali klik dari back office situs web Anda, atau enkripsi batch terjadwal. Contoh PHP berikut memanggil program enkripsi Linux (melanjutkan dari kode di Bagian 4.4; saat runtime, $profile harus dibaca dari cache terlebih dahulu, dan Layanan Web di 4.4 hanya dipanggil bila tidak ada nilai yang di-cache):
Contoh skrip shell enkripsi batch (Linux — mengodekan jalur secara lokal, lalu mengenkripsi setiap file):
Praktik yang disarankan: ambil ProfileEncryptedParam untuk ProfileID tertentu sekali melalui Layanan Web dan simpan dalam cache untuk digunakan kembali — jangan memanggil Layanan Web sekali per file terenkripsi. Hasilkan padanan enc_Input / enc_Output secara langsung dengan mengodekan Base64 (UTF-8) jalur di server Anda (di PHP: base64_encode($path), lihat Bagian 6) — tidak perlu panggilan Layanan Web. Saat mengenkripsi secara batch, batasi konkurensi (misalnya 2-4 proses enkripsi per server) untuk menghindari kejenuhan bandwidth dan CPU.
8Pertanyaan yang Sering Diajukan (FAQ)
Q1: Layanan Web mengembalikan "Your XML web service login info is not correct..."
AdminEmail atau WebServiceAuthStr salah. Periksa keduanya di konsol admin DRM-X; pastikan nilainya tidak memiliki spasi di awal atau akhir. Perhatikan juga bahwa bahkan untuk kesalahan ini kode status HTTP masih 200 — program Anda harus menentukan keberhasilan dengan memeriksa bidang respons, bukan kode status HTTP.
Q2: Memberikan ID numerik (misalnya 1001) langsung ke -profile menyebabkan kesalahan
-profile harus berupa string terenkripsi ProfileEncryptedParam lengkap yang dikembalikan oleh Layanan Web — bukan ID Profil numerik. ID numerik hanya digunakan saat memanggil Layanan Web.
Q3: Jalur berisi karakter non-ASCII atau spasi dan enkripsi gagal?
Jalur ditransportasikan sebagai Base64, dan karakter non-ASCII serta spasi didukung sepenuhnya. Kuncinya adalah pengodean harus menggunakan UTF-8: di Windows, Notepad / cmd mungkin default ke pengodean ANSI (GBK), yang merusak jalur setelah dekode Base64. Kodekan jalur sebagai UTF-8 di program Anda seperti yang dijelaskan di Bagian 6 (dengan file sumber PHP yang disimpan sebagai UTF-8, base64_encode() biasa berfungsi langsung; string lama yang dikodekan GBK dapat dikonversi terlebih dahulu dengan iconv('GBK', 'UTF-8', $path) atau mb_convert_encoding() sebelum pengodean).
Q4: Program melaporkan kegagalan output / tidak dapat menemukan direktori output
Direktori induk file output harus dibuat terlebih dahulu (misalnya mkdir -p ./output). Juga verifikasi bahwa pengguna yang menjalankan program memiliki izin tulis untuk direktori tersebut.
Q5: macOS mengatakan program "cannot be opened because the developer cannot be verified"
Program ini tidak dinotarisasi oleh Apple, sehingga Gatekeeper memblokir peluncuran pertama. Pilih salah satu solusi: ① Jalankan xattr -d com.apple.quarantine ./drm-x5-encrypt-sdk-macos-arm64 di terminal untuk menghapus tanda karantina; ② Atau klik "Open Anyway" di System Settings → Privacy & Security.
Q6: Di Linux program tidak dapat dieksekusi (Permission denied atau kesalahan format)
Jalankan chmod +x drm-x5-encrypt-sdk-linux-x86_64 terlebih dahulu. Jika Anda mendapatkan "cannot execute binary file", konfirmasi bahwa server adalah x86_64 (uname -m). Paket saat ini hanya menyertakan build x86_64; untuk server ARM silakan hubungi Haihaisoft.
Q7: Haruskah saya menggunakan com atau cn? Apa yang terjadi jika saya memilih yang salah?
Harus sesuai dengan platform akun DRM-X Anda: akun internasional menggunakan com (dan memanggil 5.drm-x.com), akun China menggunakan cn (dan memanggil 5.drm-x.cn). Ketidakcocokan menyebabkan kegagalan autentikasi, atau parameter enkripsi yang tidak sesuai dengan platform.
Q8: Bagaimana cara memverifikasi file terenkripsi?
Buka file output di pemutar demo DRM-X 5.0 / pemutar terintegrasi Anda dan konfirmasi: pemutaran diblokir tanpa lisensi, dan berputar normal setelah mengotorisasi pengguna uji di konsol admin. Verifikasi dalam skala kecil sebelum enkripsi produksi massal.
9Catatan dan Praktik Terbaik
- Simpan file asli: tulis output ke lokasi baru atau nama file baru (misalnya dengan sufiks _P) sehingga video asli tidak pernah ditimpa.
- Kecil sebelum besar: saat menggunakan profil baru atau server baru untuk pertama kalinya, jalankan satu video uji pendek melalui seluruh alur "ambil parameter → enkripsi → pemutaran berlisensi" sebelum pemrosesan batch.
- Jangan pernah mengedit argumen secara manual: -profile adalah string terenkripsi Base64 — salin sepenuhnya (tanpa spasi ekstra di awal/akhir, tanpa pemotongan akibat pembungkusan baris).
- Jaga kerahasiaan string autentikasi: WebServiceAuthStr hanya boleh ada dalam konfigurasi sisi server; jangan menyebarkan alat web demo seperti GetPackagerEncryptedParams.php ke internet publik.
- Persyaratan jaringan: selama enkripsi, server harus dapat menjangkau server DRM-X (Internasional 5.drm-x.com / China 5.drm-x.cn); izinkan port keluar 443 jika ada firewall.
Tutorial DRM-X 5.0 Lainnya
Video Pengenalan DRM-X 5.0DRM-X 5.0 adalah generasi baru platform perangkat lunak enkripsi. Haihaisoft menyediakan tutorial demo video DRM-X 5.0 umum, termasuk pengenalan DRM-X 5.0, tutorial enkripsi video, tutorial enkripsi halaman web, dan cara menyematkan pemutar video HTML5.
TONTON SEKARANG
Cara Melindungi Video dengan DRM-X 5.0 ZJGet untuk WindowsVideo ini akan menunjukkan cara mengenkripsi file di Windows menggunakan browser ZJGet.
TONTON SEKARANG
Cara Melindungi Video dengan DRM-X 5.0 ZJGet untuk macOSVideo ini akan menunjukkan cara mengenkripsi file di macOS menggunakan browser ZJGet.
TONTON SEKARANG
Memulai dengan DRM-X 5.0 ZJGet untuk WindowsVideo ini akan menunjukkan cara mengunduh, menginstal, dan membuka file terenkripsi di Windows menggunakan browser ZJGet.
TONTON SEKARANG
Panduan Pengguna DRM-X 5.0 ZJGetPanduan Pengguna Browser ZJGet. Tutorial ini akan membantu Anda menguasai fitur inti dan tips praktis dari browser ZJGet dengan mudah.
TONTON SEKARANG
FAQ DRM-X 5.0 ZJGetPertanyaan yang Sering Diajukan (FAQ) tentang penggunaan Browser ZJGet. Bagian ini mengumpulkan T&J paling berguna untuk membantu Anda mengatasi segala hambatan yang mungkin Anda temui.
TONTON SEKARANGAda pertanyaan?
Perwakilan kami memiliki jawabannya.
Tanyakan tentang produk Haihaisoft, harga, implementasi, atau hal lainnya — perwakilan kami yang terlatih siap membantu Anda.
Telp: +64 27 507 9959 (Selandia Baru)
QQ: 1279126286 / 994184623
Hubungi kami di Microsoft Teams
service#haihaisoft.com (ganti # menjadi @)
Hubungi kami