


Detaillierte Einführung in die grundlegende Verwendung der PHP-Verschlüsselungserweiterung mcrypt
Mcrypt unterstützt die folgenden vier Gruppen-Verschlüsselungsmodi: CBC, OFB, CFB und EZB. Bei Verknüpfung mit libmcrypt-2.4.x oder höher unterstützt
auch den nOFB-Gruppierungsmodus und den Streaming-Modus. Im Folgenden sind die unterstützten Verschlüsselungsmodi und ihre entsprechenden vordefinierten Konstanten aufgeführt.
1. MCRYPT_MODE_ECB (elektronisches Codebuch) eignet sich beispielsweise für die Verschlüsselung anderer Schlüssel. Da die zu verschlüsselnden Daten
kurz und zufällig sind, spielen die Nachteile dieses Modus tatsächlich eine positive Rolle.
2. MCRYPT_MODE_CBC (Cipher Block Chaining) eignet sich besonders zum Verschlüsseln von Dateien. Im Vergleich zur ECB ist die Sicherheit deutlich verbessert.
3. MCRYPT_MODE_CFB (Cipher Feedback) verschlüsselt jedes einzelne Byte und eignet sich daher sehr gut für die Verschlüsselung von Byteströmen.
4. MCRYPT_MODE_OFB (Ausgaberückmeldung, in 8 Bit) ähnelt CFB. Es kann in Anwendungen verwendet werden, die die Ausbreitung kryptografischer Fehler nicht tolerieren. Da
nach 8 Bit verschlüsselt ist, ist der Sicherheitsfaktor gering und wird nicht empfohlen.
5. MCRYPT_MODE_NOFB (Ausgaberückmeldung, in nbit) ähnelt OFB, ist jedoch sicherer, da es gemäß dem angegebenen Algorithmus gruppiert werden kann
Größe zum Verschlüsseln der Daten.
6. MCRYPT_MODE_STREAM ist ein erweiterter Modus, der Stream-Verschlüsselungsalgorithmen wie „WAKE“ oder „RC4“ umfasst.
<?php // 获取支持的加密算法 $algos = mcrypt_list_algorithms(); print_r($algos); // 获取所支持的模式 $modes = mcrypt_list_modes(); print_r($modes);
Veraltet seit PHP5.5.0. Mehrere Methoden sind nicht mehr zur Verwendung empfohlen:
mcrypt_cfc()
mcrypt_cfb()
mcrypt_ecb( )
mcrypt_ofb();
Beispiel 1:
<?php /** * 加密 * @param $plainText 明文数据 * @param $key 加密key */ function encrypt($plainText, $key) { $algo = MCRYPT_RIJNDAEL_256; //加密算法 $ecb = MCRYPT_MODE_ECB; //加密模式 $keysize = mcrypt_get_key_size($algo, $ecb); $key = substr($key, 0, $keysize); //确保key的长度有效 $ivSize = mcrypt_get_iv_size($algo, $ecb); // 参数 2 可选值有:MCRYPT_RAND(系统随机数生成器), MCRYPT_DEV_RANDOM(从 /dev/random 文件读取数据) // 和 MCRYPT_DEV_URANDOM(从 /dev/urandom 文件读取数据)。在 Windows 平台,PHP 5.3.0 之前的版本中,仅支持 MCRYPT_RAND。 // 请注意,在 PHP 5.6.0 之前的版本中, 此参数的默认值为 MCRYPT_DEV_RANDOM。 $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND); //从随机源创建初始向量 $encryptText = mcrypt_encrypt($algo, $key, $plainText, $ecb, $iv); return trim(base64_encode($encryptText)); } /** * 解密 * @param encryptedText 密文数据 * @param $key 解密key */ function decrypt($encryptedText, $key) { $algo = MCRYPT_RIJNDAEL_256; $ecb = MCRYPT_MODE_ECB; $keysize = mcrypt_get_key_size($algo, $ecb); $key = substr($key, 0, $keysize); //确保key的长度有效 $cryptText = base64_decode($encryptedText); $ivSize = mcrypt_get_iv_size($algo, $ecb); $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND); $decryptText = mcrypt_decrypt($algo, $key, $cryptText, $ecb, $iv); return trim($decryptText); }
Beispiel 2:
<?php /** * 数据加密 * @param $plainText 明文数据 * @param $key 加密key */ function encrypt($plainText, $key) { $td = mcrypt_module_open(MCRYPT_3DES, '', 'ecb', ''); // MCRYPT_3DES = tripledes $size = mcrypt_enc_get_iv_size($td); // 返回打开的算法的初始向量大小 $iv = mcrypt_create_iv($size, MCRYPT_RAND); // 从随机源创建初始向量 $key = substr($key, 0 ,mcrypt_enc_get_key_size($td)); // 打开模式所能支持的最长密钥长度 // 初始化加密所需的缓冲区 // 如果发生错误将会返回负数: -3表示密钥长度有误, -4表示内存分配失败, 其他值表示未知错误, 同时会显示对应的警告信息 $retInt = mcrypt_generic_init($td, $key, $iv); $encrypt_data = mcrypt_generic($td, $plainText); //加密 mcrypt_generic_deinit($td); // 对加密模块进行清理工作 mcrypt_module_close($td); // 关闭加密模块 return base64_encode($encrypt_data); } /** * 数据解密 * @param $encryptData 密文数据 * @param $key 解密key */ function decrypt($encryptData, $key) { $encryptData = base64_decode($encryptData); $td = mcrypt_module_open('tripledes', '', 'ecb', ''); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); //从随机源创建初始向量 $key = substr($key, 0, mcrypt_enc_get_key_size($td)); $retInt = mcrypt_generic_init($td, $key, $iv); // 请注意,由于存在数据补齐的情况,返回字符串的长度可能和明文的长度不相等 $plainText = mdecrypt_generic($td, $encryptData); // 解密 mcrypt_generic_deinit($td); // 对加密模块进行清理工作 mcrypt_module_close($td); // 关闭加密模块 return $plainText; } // 解决数据补齐,造成返回字符串长度和明文长度不一致的问题 $origin_plain = ''; //原始的明文 $plainText = ''; //解密后得到的明文 if (strncmp($origin_plain, $plainText, strlen($origin_plain)) == 0) { echo 'ok'; } else { echo 'error'; }
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die grundlegende Verwendung der PHP-Verschlüsselungserweiterung mcrypt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
