Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Datenverschlüsselungs- und -entschlüsselungsvorgänge

PHP-Datenverschlüsselungs- und -entschlüsselungsvorgänge

PHPz
PHPzOriginal
2023-06-30 13:00:083454Durchsuche

PHP erfordert als beliebte serverseitige Skriptsprache eine Datenverschlüsselung und -entschlüsselung, um die Datensicherheit beim Umgang mit sensiblen Daten zu gewährleisten. In diesem Artikel wird vorgestellt, wie PHP die Datenverschlüsselung und -entschlüsselung durchführt.

  1. Verwendet einen symmetrischen Verschlüsselungsalgorithmus.
    Der symmetrische Verschlüsselungsalgorithmus verwendet denselben Schlüssel für die Ver- und Entschlüsselung. In PHP können symmetrische Verschlüsselungs- und Entschlüsselungsvorgänge mithilfe des AES-Algorithmus (Advanced Encryption Standard) durchgeführt werden. Die spezifischen Schritte sind wie folgt:

(1) AES-Schlüssel generieren:

$key = random_bytes(32);  // 生成一个32字节长的随机密钥

(2) Daten verschlüsseln:

$data = "敏感数据";
$encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);  // 加密数据
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('AES-256-CBC'));  // 生成一个随机的初始向量

(3) Daten entschlüsseln:

$decrypted = openssl_decrypt($encrypted, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);  // 解密数据
  1. Asymmetrischen Verschlüsselungsalgorithmus verwenden
    Asymmetrischer Verschlüsselungsalgorithmus verwendet öffentliche The Der Schlüssel wird zur Verschlüsselung und der private Schlüssel zur Entschlüsselung verwendet. In PHP können Sie den RSA-Algorithmus (Rivest-Shamir-Adleman) für asymmetrische Verschlüsselungs- und Entschlüsselungsvorgänge verwenden. Die spezifischen Schritte sind wie folgt:

(1) RSA-Schlüsselpaar generieren:

$config = array(
    "digest_alg" => "sha512",
    "private_key_bits" => 4096,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
);
$res = openssl_pkey_new($config);  // 生成RSA密钥对
openssl_pkey_export($res, $privateKey);  // 导出私钥
$publicKey = openssl_pkey_get_details($res)['key'];  // 获取公钥

(2) Daten verschlüsseln:

$data = "敏感数据";
openssl_public_encrypt($data, $encrypted, $publicKey);  // 使用公钥加密数据

(3) Daten entschlüsseln:

openssl_private_decrypt($encrypted, $decrypted, $privateKey);  // 使用私钥解密数据
  1. Hash-Algorithmus verwenden
    Der Hash-Algorithmus wird verwendet Rohdaten werden in eine Zeichenfolge fester Länge umgewandelt, die normalerweise zum Speichern von Passwörtern oder zur Überprüfung der Datenintegrität verwendet wird. Zu den häufig verwendeten Hashing-Algorithmen in PHP gehören MD5, SHA1 und SHA256. Die spezifischen Schritte lauten wie folgt:

(1) Hash-Berechnung der Originaldaten:

$data = "原始数据";
$hash = md5($data);  // 计算MD5哈希值
$hash = sha1($data);  // 计算SHA1哈希值
$hash = hash('sha256', $data);  // 计算SHA256哈希值

(2) Überprüfung des Hash-Werts:

$hash = "存储的哈希值";
if (md5($data) === $hash) {
    echo "哈希值一致";
} else {
    echo "哈希值不一致";
}

Zusammenfassung: PHP bietet verschiedene Verschlüsselungs- und Entschlüsselungsmethoden für den Umgang mit sensiblen Daten , einschließlich symmetrischer Verschlüsselungsalgorithmen, asymmetrischer Verschlüsselungsalgorithmen und Hash-Algorithmen. Entwickler können geeignete Verschlüsselungsalgorithmen auswählen, um die Datensicherheit basierend auf den tatsächlichen Anforderungen zu schützen.

Das obige ist der detaillierte Inhalt vonPHP-Datenverschlüsselungs- und -entschlüsselungsvorgänge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn