DRM-X 5.0 Encryption SDK Benutzerhandbuch

Für technisches Personal — wie man Videos verschlüsselt, indem man das Verschlüsselungstool über die Befehlszeile auf dem eigenen Server / der eigenen Website aufruft

Gilt für: DRM-X 5.0 (Internationale Edition com / China-Edition cn) · Plattformen: Windows / Linux x86_64 / macOS 11.0+

Weitere Tutorials
DRM-X 5.0 Encryption SDK Benutzerhandbuch

DRM-X 5.0 Encryption SDK Benutzerhandbuch

Herunterladen | 8.61 MB

1Inhalt des SDK-Pakets

Nach dem Entpacken des Archivs DRM-X5.0_Encryption_SDK enthält das Verzeichnis die folgenden Dateien:

DateiBeschreibung
drm-x5-encrypt-sdk.exeWindows-Verschlüsselungsprogramm (x64)
drm-x5-encrypt-sdk-linux-x86_64Linux-Verschlüsselungsprogramm (x86_64, statisch gelinkt — keine Shared-Library-Abhängigkeiten; läuft direkt auf CentOS / Ubuntu usw.)
drm-x5-encrypt-sdk-macos-x86_64macOS-Verschlüsselungsprogramm (Intel-Chip, macOS 11.0 oder später)
drm-x5-encrypt-sdk-macos-arm64macOS-Verschlüsselungsprogramm (Apple Silicon M-Serie-Chip, macOS 11.0 oder später)
cmd.txtBeispiele für den Aufruf über die Befehlszeile für die drei Plattformen
GetPackagerEncryptedParams.phpEine ausführbare PHP-Demo, die den Webdienst aufruft, um die Verschlüsselungsparameter abzurufen (siehe Abschnitt 4.4)

Die Befehlszeilenargumente sind auf allen drei Plattformen identisch — nur der Name der Programmdatei unterscheidet sich.

2Überblick über den Verschlüsselungs-Workflow

SCHRITT 1 · Verschlüsselungsparameter abrufen

Rufen Sie GetPackagerEncryptedParams auf, um ProfileEncryptedParam abzurufen (d. h. die verschlüsselte Zeichenfolge für -profile — einmal abrufen und für die Wiederverwendung zwischenspeichern). Die Base64-Werte der Eingabe- / Ausgabepfade werden lokal von Ihrem Programm kodiert; es ist nicht erforderlich, den Webdienst dafür aufzurufen.

SCHRITT 2 · Befehlszeile zusammenstellen

Füllen Sie das erhaltene -profile und die lokal Base64-kodierten Pfade in die vier Argumente des Verschlüsselungsprogramms ein: -server_domain / -profile / -input_file_utf8_base64_encoded / -output_file_utf8_base64_encoded

SCHRITT 3 · Verschlüsselung ausführen

Führen Sie das Befehlszeilenprogramm auf Ihrem Server aus, um die Verschlüsselung durchzuführen.

SCHRITT 4 · Verschlüsselte Dateien veröffentlichen

Laden Sie die verschlüsselten Dateien aus dem Ausgabeverzeichnis hoch / veröffentlichen Sie sie. Lizenzen werden vom DRM-X 5.0-Server ausgestellt, wenn Benutzer den Inhalt abspielen.

Warum zuerst den DRM-X 5.0 Webdienst aufrufen?Das Argument -profile des Verschlüsselungsprogramms ist nicht die numerische ID des Lizenzprofils — es ist eine verschlüsselte Zeichenfolge, die an Ihr Konto gebunden ist (ProfileEncryptedParam). Diese Zeichenfolge kann nicht lokal generiert werden; sie kann nur über den Webdienst abgerufen werden. Sie wird eins zu eins einer ProfileID zugeordnet, und sobald sie abgerufen wurde, kann sie zwischengespeichert und wiederverwendet werden — Sie müssen den Webdienst nicht für jede Datei aufrufen. Die Base64-Werte der Eingabe- / Ausgabepfade hingegen sollten lokal in Ihrem Programm kodiert werden (siehe Abschnitt 6) — dafür ist kein Webdienst-Aufruf erforderlich.

3Voraussetzungen

3.1 DRM-X 5.0-Kontoinformationen (aus der DRM-X-Administrationskonsole abgerufen)

ElementZweck
AdminEmailE-Mail-Adresse des Administrators, verwendet für die Webdienst-Authentifizierung. Erfordert ein Advanced-Konto oder höher.
WebServiceAuthStrAuthentifizierungszeichenfolge für die Webdienst-Integration. Sehen Sie sie in der Administrationskonsole unter "Website Integration Parameter Settings" ein.
ProfileIDNumerische Lizenzprofil-ID — legt fest, welches Lizenzprofil für diese Verschlüsselung verwendet wird.

3.2 Anforderungen an die Serverumgebung

PlattformAnforderungen
WindowsWindows 7 / Server 2008 R2 oder später (x64)
Linuxx86_64-Architektur (CentOS 7+ / Ubuntu 16.04+ und andere gängige Distributionen). Statisch gelinkt — keine Abhängigkeiten zu installieren.
macOSmacOSmacOS 11.0 oder später, Intel- oder Apple Silicon-Chip
Serverseitige Integration (optional)PHP 7.4+ (mit aktivierten Erweiterungen soap und openssl), um den Webdienst automatisch aufzurufen

Sicherheitshinweis: WebServiceAuthStr entspricht einem Kontoschlüssel. Er darf nur serverseitig gespeichert werden — platzieren Sie ihn niemals in Front-End-Webseiten, Client-Software oder öffentlichen Repositorys.

4Schritt eins: Aufrufen des DRM-X 5.0 Webdienstes zum Abrufen der Verschlüsselungsparameter

4.1 Webdienst-Informationen

ElementWert
Internationaler Endpunkthttps://5.drm-x.com/haihaisoftlicenseservice.asmx
Chinesischer Endpunkthttps://5.drm-x.cn/haihaisoftlicenseservice.asmx
MethodennameGetPackagerEncryptedParams
ProtokollSOAP 1.1 (POST)
SOAPActionhttp://tempuri.org/ASPNET.StarterKit.Commerce/HaihaisoftLicenseService/GetPackagerEncryptedParams

Der Endpunkt muss zur Edition Ihres Kontos passen: Internationale Konten verwenden 5.drm-x.com (Befehlszeile: -server_domain com); China-Konten verwenden 5.drm-x.cn (Befehlszeile: -server_domain cn). Die Verwendung der falschen Edition führt dazu, dass die Authentifizierung fehlschlägt oder die verschlüsselten Dateien nicht abspielbar sind.

4.2 Anforderungsparameter

ParameterErforderlichBeschreibung
AdminEmailJaE-Mail-Adresse des DRM-X 5.0-Administrators
WebServiceAuthStrJaWebdienst-Authentifizierungszeichenfolge
ProfileIDJaLizenzprofil-ID (numerisch; keine Kodierung erforderlich)
InputJaVollständiger Pfad der zu verschlüsselnden Datei (einfache Zeichenfolge; keine Kodierung erforderlich)
OutputJaVollständiger Pfad der verschlüsselten Ausgabedatei
ProfileEncryptedParam / enc_Input / enc_OutputNeinReservierte Felder — normalerweise eine leere Zeichenfolge übergeben

4.3 Zuordnung zwischen Antwortfeldern und Befehlszeilenargumenten (Kern)

AntwortfeldBefehlszeilenargumentBeschreibung
ProfileEncryptedParam-profileEine verschlüsselte Lizenzprofil-Zeichenfolge, die an Ihr Konto gebunden ist (URL-Safe Base64, enthält - und _). Sie müssen den vom Webdienst zurückgegebenen Wert verwenden — übergeben Sie niemals die numerische Profile-ID und kodieren Sie sie niemals selbst. Sie muss nur einmal pro ProfileID abgerufen werden und kann dann langfristig zwischengespeichert und wiederverwendet werden — es ist nicht erforderlich, den Webdienst für jede Datei aufzurufen.
enc_Input-input_file_utf8_base64_encodedDer UTF-8-Base64-kodierte Eingabepfad. Es wird empfohlen, ihn lokal in Ihrem Programm zu kodieren (PHP: base64_encode(); in anderen Sprachen zuerst in UTF-8-Bytes konvertieren, dann Base64 — siehe Abschnitt 6). Dafür ist kein Webdienst-Aufruf erforderlich; der vom Dienst zurückgegebene Wert enc_Input funktioniert genauso gut.
enc_Output-output_file_utf8_base64_encodedDer UTF-8-Base64-kodierte Ausgabepfad. Es wird empfohlen, ihn lokal zu kodieren (gleiche Methode wie oben); der vom Dienst zurückgegebene Wert enc_Output funktioniert ebenfalls.
GetPackagerEncryptedParamsResult—Status- / Nachrichtentext. Hinweis: Der HTTP-Statuscode ist 200, unabhängig davon, ob der Aufruf erfolgreich ist oder fehlschlägt. Um den Erfolg festzustellen, müssen Sie den Inhalt dieses Feldes und ob die drei Parameterwerte nicht leer sind, überprüfen.

4.4 Aufrufbeispiel (PHP / SoapClient)

Dieser Webdienst ist ein standardmäßiger SOAP 1.1-Dienst, der aus jeder Sprache auf dieselbe einheitliche Weise aufgerufen werden kann: Senden Sie einen SOAP-Umschlag per POST an den in 4.1 aufgeführten Endpunkt (oder lassen Sie einen SOAP-Client ihn automatisch aus ?WSDL generieren), übergeben Sie die Parameter aus 4.2 und lesen Sie dann die drei Felder aus 4.3 in der Antwort. Gängige SOAP-Client-Bibliotheken nach Sprache:

Sprache / PlattformGängige SOAP-Clients
PHPIntegrierte SoapClient-Klasse (in diesem Handbuch verwendet, WSDL-Modus)
JavaJAX-WS (wsimport), Apache Axis2, Apache CXF
Pythonzeep、suds
C# / .NETVisual Studio "Add Service Reference" oder SvcUtil
Node.jssoap-Paket

Das folgende Beispiel verwendet PHPs SoapClient, um den vollständigen Aufruf zu demonstrieren. Speichern Sie den Code als get_params.php auf Ihrem Server und führen Sie ihn aus (PHP 7.4+ mit aktivierter soap-Erweiterung) — er gibt die drei Befehlszeilenargumentwerte aus:

<?php
// ========== Configuration (edit to match your account) ==========
$wsdl              = 'https://5.drm-x.com/haihaisoftlicenseservice.asmx?WSDL';  // China edition: https://5.drm-x.cn/...
$adminEmail        = 'admin@example.com';
$webServiceAuthStr = 'YOUR_AUTH_STRING';
$profileID         = '1001';
$input             = '/home/video/course01.mp4';
$output            = '/home/video/encrypted/course01_P.mp4';

// ========== Create a SoapClient (WSDL mode; the SOAP envelope is generated automatically) ==========
$client = new SoapClient($wsdl, [
    'soap_version'       => SOAP_1_1,
    'connection_timeout' => 20,
    'trace'              => true,          // enables __getLastRequest() for inspecting the raw request
]);

// ========== Call the method: the method name is the WSDL operation; arguments are an associative array ==========
$resp = $client->GetPackagerEncryptedParams([
    'AdminEmail'            => $adminEmail,
    'WebServiceAuthStr'     => $webServiceAuthStr,
    'ProfileID'             => $profileID,
    'Input'                 => $input,
    'Output'                => $output,
    'ProfileEncryptedParam' => '',
    'enc_Input'             => '',
    'enc_Output'            => '',
]);

// ========== The response is mapped to a stdClass object; read the fields directly ==========
$result  = $resp->GetPackagerEncryptedParamsResult;
$profile = $resp->ProfileEncryptedParam;   // this is the -profile argument value

if ($profile === '') {
    die("Call failed: $result\n");   // e.g. authentication errors appear here
}

// -profile: one call per ProfileID is enough. Cache it and reuse it —
//           do not call the Web Service again for every file you encrypt.
echo "-profile = $profile\n";

// Input / output paths: Base64-encode them locally (UTF-8). No Web Service call needed.
// If your PHP source file is saved as UTF-8, the strings are already UTF-8.
// Other languages work the same way: convert to UTF-8 bytes first, then Base64.
// (The service also returns enc_Input / enc_Output with the same values — either source is fine.)
$encIn  = base64_encode($input);
$encOut = base64_encode($output);
echo "-input_file_utf8_base64_encoded = $encIn\n";
echo "-output_file_utf8_base64_encoded = $encOut\n";

SoapClient-Hinweise:

  • Die Erweiterung php-soap muss installiert und aktiviert sein (unter Windows in php.ini extension=soap auskommentieren; unter Linux das Paket php-soap installieren).
  • Geschäftsfehler wie fehlgeschlagene Authentifizierung lösen KEINEN SoapFault aus. Der Dienst gibt weiterhin HTTP 200 mit einer wohlgeformten Antwort zurück, und der Fehlertext befindet sich in GetPackagerEncryptedParamsResult. Stellen Sie den Erfolg immer durch Überprüfung der Feldwerte fest, wie in 4.3 beschrieben.
  • Verwenden Sie zum Debuggen var_dump($client->__getLastRequest()), um den tatsächlichen Anforderungsumschlag zu untersuchen.

5Schritt zwei: Ausführen des Verschlüsselungsbefehls

5.1 Erste Verwendung (Linux / macOS)

Wechseln Sie in einem Terminal in das Verzeichnis des Programms und erteilen Sie zuerst die Ausführungsberechtigung:

# Linux
chmod +x drm-x5-encrypt-sdk-linux-x86_64

# macOS (pick the one matching your architecture)
chmod +x drm-x5-encrypt-sdk-macos-x86_64
chmod +x drm-x5-encrypt-sdk-macos-arm64

5.2 Vorlagen für Einzeldatei-Verschlüsselungsbefehle

Windows (cmd / PowerShell):

drm-x5-encrypt-sdk.exe -server_domain com -profile <ProfileEncryptedParam value> -input_file_utf8_base64_encoded <Base64 of the input path> -output_file_utf8_base64_encoded <Base64 of the output path>

Linux:

./drm-x5-encrypt-sdk-linux-x86_64 -server_domain com -profile <ProfileEncryptedParam value> -input_file_utf8_base64_encoded <Base64 of the input path> -output_file_utf8_base64_encoded <Base64 of the output path>

macOS:

./drm-x5-encrypt-sdk-macos-arm64 -server_domain com -profile <ProfileEncryptedParam value> -input_file_utf8_base64_encoded <Base64 of the input path> -output_file_utf8_base64_encoded <Base64 of the output path>

5.3 Argumentreferenz

ArgumentBeschreibung
-server_domainZiel-DRM-X 5.0-Server-Edition: com = International, cn = China. Sie muss mit der Plattform Ihres Kontos und dem in Schritt 4 verwendeten Webdienst-Endpunkt übereinstimmen.
-profileDie verschlüsselte Lizenzprofil-Zeichenfolge — der vollständige von Webdienst zurückgegebene Wert ProfileEncryptedParam (URL-Safe Base64, enthält - und _). Übergeben Sie keine numerische ID, kodieren Sie sie nicht selbst mit Base64 und fügen Sie keine abschließenden Zeichen hinzu oder entfernen Sie sie. Sie muss nur einmal pro ProfileID abgerufen werden und kann dann langfristig zwischengespeichert und wiederverwendet werden.
-input_file_utf8_base64_encodedDer UTF-8-Base64-kodierte Eingabedateipfad. Es wird empfohlen, ihn lokal zu kodieren (z. B. PHPs base64_encode($path), siehe Abschnitt 6); der vom Dienst zurückgegebene Wert enc_Input funktioniert ebenfalls. Sowohl absolute als auch relative Pfade werden unterstützt, und Pfade dürfen Nicht-ASCII-Zeichen und Leerzeichen enthalten.
-output_file_utf8_base64_encodedDer UTF-8-Base64-kodierte Ausgabedateipfad. Es wird empfohlen, ihn lokal zu kodieren (gleiche Methode wie oben); der vom Dienst zurückgegebene Wert enc_Output funktioniert ebenfalls. Das übergeordnete Verzeichnis der Ausgabe muss bereits existieren — das Programm erstellt es nicht.

5.4 Vollständige Beispiele

Windows:

drm-x5-encrypt-sdk.exe -server_domain com -profile UMuAZfLDToYGfmigBsRbklanDHRBoRrLrsTkI_W52KVnPcC-ZL-KU4UssGDA8Uja-4URQqsxw7WPsZL-CPWYQQj1jdwQsSbLri9_Q3YvPysCfMNtXKBHZvhrWlcsmNMg8FVqm7KFgr4ODrSQxAXgFV -input_file_utf8_base64_encoded RDpcSmFzb25caW5wdXRcMDEtdGVzdFZpZGVvLm1wNA== -output_file_utf8_base64_encoded RDpcSmFzb25cb3V0cHV0XDAxLXRlc3RWaWRlb19QLm1wNA==

Hier dekodiert RDpcSmFzb25c... zu D:\Jason\input\01-testVideo.mp4.

Linux:

./drm-x5-encrypt-sdk-linux-x86_64 -server_domain com -profile s5Gls5QDAz4LyC_USkG9rY0fyDU4cN90HhgvOe6-67OUn92UFWRFdv4N_7Qx-Ipxa_M5d123ZQEesB1BPnGkUs-HkFTwI1pZEwaj133IRLhaxuUfOpBBROkKZpPk_QxBKvoxiX4NVL-Rs6g457jWsV -input_file_utf8_base64_encoded Li9pbnB1dC8wMS1saW51eC1lbmNyeXB0LXZpZGVvLm1wNA== -output_file_utf8_base64_encoded Li9vdXRwdXQvMDEtbGludXgtZW5jcnlwdC12aWRlbzJfUC5tcDQ=

Dies verschlüsselt ./input/01-linux-encrypt-video.mp4 → ./output/01-linux-encrypt-video2_P.mp4.

5.5 Überprüfen des Ergebnisses

  • Wenn das Programm fertig ist, prüfen Sie, ob im Ausgabeverzeichnis eine verschlüsselte Datei erstellt wurde (ein _P-Suffix wird empfohlen, um sie zu unterscheiden, z. B. course01_P.mp4);
  • Die Verschlüsselung erfordert Netzwerkzugriff auf den DRM-X-Server. Stellen Sie sicher, dass Ihre Firewall / Sicherheitsgruppe ausgehenden Zugriff auf 5.drm-x.com oder 5.drm-x.cn zulässt;
  • Es wird empfohlen, den vollständigen Workflow mit einem kleinen Testvideo zu überprüfen, bevor Produktionsinhalte in großen Mengen verschlüsselt werden.

6Base64-Kodierung der Eingabe- / Ausgabepfade (lokale Kodierung empfohlen)

Empfohlene Vorgehensweise: Generieren Sie die Werte von -input_file_utf8_base64_encoded / -output_file_utf8_base64_encoded, indem Sie sie in Ihrem eigenen Programm kodieren — es ist nicht erforderlich, den Webdienst einmal pro Datei aufzurufen. Die Kodierungsregel: Konvertieren Sie die Pfadzeichenfolge zuerst in UTF-8-Bytes und wenden Sie dann die standardmäßige Base64-Kodierung an. Hinweis: Ihre Quelldateien müssen als UTF-8 gespeichert werden (dies ist besonders bei Nicht-ASCII-Pfaden wichtig; verwenden Sie unter Windows keine ANSI- / GBK-Kodierung). Beispiele nach Sprache:

Sprache / UmgebungBeispiel (Kodierung des Pfades /home/video/course01.mp4)
PHPbase64_encode('/home/video/course01.mp4')
JavaBase64.getEncoder().encodeToString(path.getBytes(StandardCharsets.UTF_8))
Pythonbase64.b64encode(path.encode('utf-8')).decode()
C# / .NETConvert.ToBase64String(Encoding.UTF8.GetBytes(path))
Node.jsBuffer.from(path, 'utf8').toString('base64')
Linux / macOS shellprintf '%s' "/home/video/course01.mp4" | base64
Windows PowerShell[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("C:\video\course01.mp4"))

Um es noch einmal zu betonen: Es gibt keine Möglichkeit, das Argument -profile lokal zu generieren. Es ist eine verschlüsselte Zeichenfolge, die an Ihr Konto gebunden ist und nur über den GetPackagerEncryptedParams-Webdienst abgerufen werden kann.

7Beispiele für serverseitige Automatisierung

Die Verkettung von "Parameter abrufen + Verschlüsselungsprogramm aufrufen" ermöglicht eine Ein-Klick-Verschlüsselung aus dem Backoffice Ihrer Website oder eine geplante Batch-Verschlüsselung. Das folgende PHP-Beispiel ruft das Linux-Verschlüsselungsprogramm auf (fortgesetzt aus dem Code in Abschnitt 4.4; zur Laufzeit sollte $profile zuerst aus dem Cache gelesen werden, und der Webdienst in 4.4 nur aufgerufen werden, wenn kein zwischengespeicherter Wert vorhanden ist):

<?php
// ...continuing from Section 4.4, with $profile / $encIn / $encOut already obtained:

$packager = '/opt/drmx5/drm-x5-encrypt-sdk-linux-x86_64';   // absolute path to the encryption program
$domain   = 'com';                                        // com = International, cn = China

// Make sure the output directory exists (the program does not create it)
$outDir = dirname(base64_decode($encOut));
if (!is_dir($outDir)) { mkdir($outDir, 0755, true); }

// Assemble and execute the command (escapeshellarg prevents injection; the argument
// values are Base64 and contain no spaces, so this is double protection)
$cmd = $packager
     . ' -server_domain '   . escapeshellarg($domain)
     . ' -profile '         . escapeshellarg($profile)
     . ' -input_file_utf8_base64_encoded '  . escapeshellarg($encIn)
     . ' -output_file_utf8_base64_encoded ' . escapeshellarg($encOut);

exec($cmd, $outLines, $exitCode);
echo 'Exit code: ' . $exitCode . PHP_EOL . implode(PHP_EOL, $outLines);

Beispiel für ein Shell-Batch-Verschlüsselungsskript (Linux — kodiert Pfade lokal und verschlüsselt dann jede Datei):

#!/bin/bash
# batch_encrypt.sh — batch-encrypt all mp4 files under ./input into ./output
ADMIN_EMAIL="admin@example.com"
AUTH_STR="YOUR_AUTH_STRING"
PROFILE_ID="1001"
PACKAGER="./drm-x5-encrypt-sdk-linux-x86_64"
DOMAIN="com"   # China edition: change to cn

mkdir -p ./output
for f in ./input/*.mp4; do
  name=$(basename "$f" .mp4)
  out="./output/${name}_P.mp4"
  # Base64-encode the paths locally (UTF-8)
  in_b64=$(printf '%s' "$f"  | base64 -w0)
  out_b64=$(printf '%s' "$out" | base64 -w0)
  # The -profile string should be obtained once by your server via the Web Service
  # and cached — the same ProfileID's value can be reused for every file.
  "$PACKAGER" -server_domain "$DOMAIN" -profile "$PROFILE_ENC" \
      -input_file_utf8_base64_encoded "$in_b64" \
      -output_file_utf8_base64_encoded "$out_b64"
  echo "[done] $out"
done

Empfohlene Vorgehensweise: Rufen Sie das ProfileEncryptedParam für eine bestimmte ProfileID einmal über den Webdienst ab und speichern Sie es zur Wiederverwendung zwischen — rufen Sie den Webdienst nicht einmal pro verschlüsselter Datei auf. Generieren Sie enc_Input / enc_Output-Äquivalente direkt durch Base64-Kodierung (UTF-8) der Pfade auf Ihrem Server (in PHP: base64_encode($path), siehe Abschnitt 6) — kein Webdienst-Aufruf erforderlich. Begrenzen Sie bei der Batch-Verschlüsselung die Parallelität (z. B. 2-4 Verschlüsselungsprozesse pro Server), um eine Sättigung von Bandbreite und CPU zu vermeiden.

8Häufig gestellte Fragen (FAQ)

Q1: Der Webdienst gibt "Your XML web service login info is not correct..." zurück

AdminEmail oder WebServiceAuthStr ist falsch. Überprüfen Sie beide in der DRM-X-Administrationskonsole; stellen Sie sicher, dass die Werte keine führenden oder abschließenden Leerzeichen enthalten. Beachten Sie auch, dass selbst bei diesem Fehler der HTTP-Statuscode weiterhin 200 ist — Ihr Programm muss den Erfolg durch Überprüfung der Antwortfelder feststellen, nicht anhand des HTTP-Statuscodes.

Q2: Die direkte Übergabe der numerischen ID (z. B. 1001) an -profile verursacht einen Fehler

-profile muss die vollständige vom Webdienst zurückgegebene verschlüsselte Zeichenfolge ProfileEncryptedParam sein — nicht die numerische Profile-ID. Die numerische ID wird nur beim Aufruf des Webdienstes verwendet.

Q3: Der Pfad enthält Nicht-ASCII-Zeichen oder Leerzeichen und die Verschlüsselung schlägt fehl?

Pfade werden als Base64 übertragen, und Nicht-ASCII-Zeichen und Leerzeichen werden vollständig unterstützt. Der Schlüssel liegt darin, dass die Kodierung UTF-8 verwenden muss: Unter Windows verwenden Notepad / cmd möglicherweise standardmäßig ANSI- (GBK-) Kodierung, die den Pfad nach der Base64-Dekodierung beschädigt. Kodieren Sie Pfade in Ihrem Programm als UTF-8, wie in Abschnitt 6 beschrieben (bei einer als UTF-8 gespeicherten PHP-Quelldatei funktioniert einfaches base64_encode() direkt; Legacy-GBK-kodierte Zeichenfolgen können zuerst mit iconv('GBK', 'UTF-8', $path) oder mb_convert_encoding() konvertiert und dann kodiert werden).

Q4: Das Programm meldet einen Ausgabefehler / kann das Ausgabeverzeichnis nicht finden

Das übergeordnete Verzeichnis der Ausgabedatei muss im Voraus erstellt werden (z. B. mkdir -p ./output). Überprüfen Sie außerdem, ob der Benutzer, der das Programm ausführt, Schreibberechtigung für dieses Verzeichnis hat.

Q5: macOS meldet, das Programm "cannot be opened because the developer cannot be verified"

Das Programm ist nicht von Apple notarisiert, daher blockiert Gatekeeper den ersten Start. Wählen Sie eine der beiden Abhilfen: ① Führen Sie xattr -d com.apple.quarantine ./drm-x5-encrypt-sdk-macos-arm64 in einem Terminal aus, um das Quarantäne-Flag zu entfernen; ② Oder klicken Sie in Systemeinstellungen → Datenschutz & Sicherheit auf "Trotzdem öffnen".

Q6: Unter Linux kann das Programm nicht ausgeführt werden (Permission denied oder Formatfehler)

Führen Sie zuerst chmod +x drm-x5-encrypt-sdk-linux-x86_64 aus. Wenn Sie "cannot execute binary file" erhalten, bestätigen Sie, dass der Server x86_64 ist (uname -m). Das aktuelle Paket enthält nur x86_64-Builds; für ARM-Server wenden Sie sich bitte an Haihaisoft.

Q7: Sollte ich com oder cn verwenden? Was passiert, wenn ich das falsche wähle?

Es muss mit der Plattform Ihres DRM-X-Kontos übereinstimmen: Internationale Konten verwenden com (und rufen 5.drm-x.com auf), China-Konten verwenden cn (und rufen 5.drm-x.cn auf). Eine Nichtübereinstimmung verursacht einen Authentifizierungsfehler oder Verschlüsselungsparameter, die nicht zur Plattform passen.

Q8: Wie überprüfe ich die verschlüsselten Dateien?

Öffnen Sie die Ausgabedateien im DRM-X 5.0-Demo-Player / Ihrem integrierten Player und bestätigen Sie: Die Wiedergabe wird ohne Lizenz blockiert und spielt normal ab, nachdem Sie einen Testbenutzer in der Administrationskonsole autorisiert haben. Überprüfen Sie in kleinem Maßstab, bevor Sie Produktionsinhalte in großen Mengen verschlüsseln.

9Hinweise und bewährte Verfahren

  • Bewahren Sie die Originaldateien auf: Schreiben Sie die Ausgabe an einen neuen Speicherort oder unter einem neuen Dateinamen (z. B. mit einem _P-Suffix), damit die Originalvideos niemals überschrieben werden.
  • Klein vor groß: Wenn Sie ein neues Profil oder einen neuen Server zum ersten Mal verwenden, führen Sie ein kurzes Testvideo durch den gesamten Ablauf "Parameter abrufen → verschlüsseln → lizenzierte Wiedergabe", bevor Sie die Stapelverarbeitung durchführen.
  • Bearbeiten Sie die Argumente niemals von Hand: -profile ist eine Base64-verschlüsselte Zeichenfolge — kopieren Sie sie vollständig (keine zusätzlichen führenden/abschließenden Leerzeichen, keine Zeilenumbruch-Kürzung).
  • Halten Sie die Authentifizierungszeichenfolge geheim: WebServiceAuthStr gehört nur in die serverseitige Konfiguration; stellen Sie Demo-Webtools wie GetPackagerEncryptedParams.php nicht im öffentlichen Internet bereit.
  • Netzwerkanforderung: Während der Verschlüsselung muss der Server die DRM-X-Server erreichen (International 5.drm-x.com / China 5.drm-x.cn); erlauben Sie ausgehenden Port 443, falls eine Firewall vorhanden ist.

Weitere DRM-X 5.0 Tutorials

DRM-X 5.0 Introduction VideoDRM-X 5.0 Einführungsvideo

DRM-X 5.0 ist eine neue Generation von Verschlüsselungssoftware-Plattformen. Haihaisoft bietet gängige DRM-X 5.0 Video-Demo-Tutorials an, einschließlich DRM-X 5.0 Einführung, Videoverschlüsselungs-Tutorial, Webseitenverschlüsselungs-Tutorial und wie man HTML5-Videoplayer einbettet.

JETZT ANSEHEN
DRM-X 5.0 ZJGet Windows Video TutorialSo schützen Sie Videos mit DRM-X 5.0 ZJGet für Windows

Dieses Video zeigt, wie Sie Dateien unter Windows mit dem ZJGet-Browser verschlüsseln.

JETZT ANSEHEN
DRM-X 5.0 ZJGet macOS Video TutorialSo schützen Sie Videos mit DRM-X 5.0 ZJGet für macOS

Dieses Video zeigt, wie Sie Dateien unter macOS mit dem ZJGet-Browser verschlüsseln.

JETZT ANSEHEN
DRM-X 5.0 ZJGet Windows TutorialErste Schritte mit DRM-X 5.0 ZJGet für Windows

Dieses Video zeigt Ihnen, wie Sie mit dem ZJGet-Browser verschlüsselte Dateien unter Windows herunterladen, installieren und öffnen können.

JETZT ANSEHEN
DRM-X 5.0 ZJGet Text TutorialDRM-X 5.0 ZJGet-Benutzerhandbuch

ZJGet Browser-Benutzerhandbuch. Dieses Tutorial hilft Ihnen, die Kernfunktionen und praktischen Tipps des ZJGet Browsers mühelos zu meistern.

JETZT ANSEHEN
DRM-X 5.0 ZJGet Graphic Tutorial AnswersDRM-X 5.0 ZJGet FAQ

Häufig gestellte Fragen (FAQ) zur Verwendung des ZJGet Browsers. Dieser Abschnitt enthält die nützlichsten Fragen und Antworten, um Ihnen zu helfen, alle Hindernisse zu überwinden, auf die Sie stoßen könnten.

JETZT ANSEHEN