Heim > Artikel > Backend-Entwicklung > Wie verschlüssele und entschlüssele ich Daten in PHP?
PHP ist eine serverseitige Open-Source-Programmiersprache, die im Bereich der Webentwicklung weit verbreitet ist. Da es bei Webanwendungen häufig um vertrauliche Benutzerinformationen wie Passwörter, Bankkartennummern usw. geht, ist es besonders wichtig, diese Informationen zu ver- und entschlüsseln.
In diesem Artikel wird das Ver- und Entschlüsseln von Daten in PHP vorgestellt, hauptsächlich mit folgendem Inhalt:
2. MD5-Verschlüsselung in PHP verwenden
Verwenden Sie die Funktion md5() in PHP, um Zeichenfolgen mit MD5 zu verschlüsseln. Der Beispielcode lautet wie folgt:
$str = "hello world"; $encrypted_str = md5($str); echo $encrypted_str;# 🎜 🎜#Das Ausgabeergebnis ist:
5eb63bbbe01eeed093cb22bb8f5acdc33. Verwenden Sie die sha1-Verschlüsselung in PHP. Verwenden Sie die sha1()-Funktion in PHP, um Zeichenfolgen mit SHA1 zu verschlüsseln folgt:
$str = "hello world"; $encrypted_str = sha1($str); echo $encrypted_str;Das Ausgabeergebnis ist:
2ef7bde608ce5404e97d5f042f95f89f1c2328714. Verwenden Sie die Base64-Codierung in PHP. Verwenden Sie die Funktion base64_encode() in PHP zum Codieren Zeichenfolgen Base64-Kodierung, verwenden Sie die Funktion base64_decode(), um die base64-kodierte Zeichenfolge zu dekodieren. Der Beispielcode lautet wie folgt:
$str = "hello world"; $encoded_str = base64_encode($str); echo $encoded_str . " "; // 输出:aGVsbG8gd29ybGQ= $decoded_str = base64_decode($encoded_str); echo $decoded_str; // 输出:hello world5. Verwenden Sie die OpenSSL-Erweiterungsbibliothek in PHP für die AES-Verschlüsselung und -Entschlüsselung#🎜🎜 ## 🎜🎜#Die Verwendung der OpenSSL-Erweiterungsbibliothek in PHP kann eine AES-Verschlüsselung und -Entschlüsselung von Daten durchführen. Der Beispielcode lautet wie folgt:
// AES加密 function encrypt($str, $key) { $iv_size = openssl_cipher_iv_length('AES-256-CBC'); $iv = openssl_random_pseudo_bytes($iv_size); // 生成随机IV $encrypted_str = openssl_encrypt($str, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv); $result = base64_encode($iv . $encrypted_str); return $result; } // AES解密 function decrypt($encrypted_str, $key) { $encrypted_str = base64_decode($encrypted_str); $iv_size = openssl_cipher_iv_length('AES-256-CBC'); $iv = substr($encrypted_str, 0, $iv_size); $encrypted_str = substr($encrypted_str, $iv_size); $result = openssl_decrypt($encrypted_str, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv); return $result; } // 测试代码 $key = "12345678901234567890123456789012"; // AES密钥,32位 $str = "hello world"; $encrypted_str = encrypt($str, $key); echo $encrypted_str . " "; $decrypted_str = decrypt($encrypted_str, $key); echo $decrypted_str . " ";Das Ausgabeergebnis ist:
7KdkeT91N7zg8WZrZ1Oehg==xsYlbGhMF8dNQXH1LqTwVw== hello world#🎜🎜 # 6. Verwendung in PHP-Schritten für die AES-Verschlüsselung und -Entschlüsselung mithilfe der mcrypt-Erweiterungsbibliothek
Die Schritte zur Verwendung der mcrypt-Erweiterungsbibliothek für die AES-Verschlüsselung und -Entschlüsselung sind wie folgt:
Laden der mcrypt-Erweiterungsbibliothek#🎜🎜 #
extension_loaded('mcrypt'); // 检查是否已经加载mcrypt扩展库
Zufällige IV generieren
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$encrypted_str = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_CBC, $iv);
$decrypted_str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $encrypted_str, MCRYPT_MODE_CBC, $iv);
$encrypted_str = base64_encode($iv . $encrypted_str);
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $iv = substr($encrypted_str, 0, $iv_size); $encrypted_str = substr($encrypted_str, $iv_size);
// AES加密 function encrypt($str, $key) { $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); // 生成随机IV $encrypted_str = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_CBC, $iv); $result = base64_encode($iv . $encrypted_str); // 对IV和密文进行base64编码 return $result; } // AES解密 function decrypt($encrypted_str, $key) { $encrypted_str = base64_decode($encrypted_str); // 对base64编码的字符串进行解码 $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $iv = substr($encrypted_str, 0, $iv_size); // 截取IV值 $encrypted_str = substr($encrypted_str, $iv_size); // 截取密文部分 $result = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $encrypted_str, MCRYPT_MODE_CBC, $iv); return $result; } // 测试代码 $key = "1234567890123456"; // AES密钥,16位 $str = "hello world"; $encrypted_str = encrypt($str, $key); echo $encrypted_str . " "; $decrypted_str = decrypt($encrypted_str, $key); echo $decrypted_str . " ";
Ym63V4DnBc/jk9bNNzlngQtdeecbBZ+E7IHvC6khMgg= hello world
Das obige ist der detaillierte Inhalt vonWie verschlüssele und entschlüssele ich Daten in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!