Heim  >  Artikel  >  Backend-Entwicklung  >  So verschlüsseln und entschlüsseln Sie sensible Daten in PHP

So verschlüsseln und entschlüsseln Sie sensible Daten in PHP

王林
王林Original
2023-07-05 15:51:131216Durchsuche

So verschlüsseln und entschlüsseln Sie sensible Daten in PHP

In der Online-Welt ist der Schutz der sensiblen Daten der Benutzer von entscheidender Bedeutung. Um die Privatsphäre und Sicherheit der Benutzer zu gewährleisten, verwenden Entwickler häufig Verschlüsselungsalgorithmen, um sensible Daten zu verschlüsseln und zu entschlüsseln. In PHP gibt es viele Verschlüsselungsalgorithmen, die verwendet werden können. In diesem Artikel werden einige häufig verwendete Verschlüsselungsalgorithmen vorgestellt und entsprechende Codebeispiele gegeben.

1. Symmetrischer Verschlüsselungsalgorithmus

Der symmetrische Verschlüsselungsalgorithmus ist ein Algorithmus, der denselben Schlüssel zum Ver- und Entschlüsseln von Daten verwendet. Der Hauptvorteil dieses Algorithmus ist die schnelle Ver- und Entschlüsselung, die Übertragung und Verwaltung von Schlüsseln führt jedoch zu Sicherheitsproblemen.

  1. Daten mit dem AES-Algorithmus verschlüsseln und entschlüsseln

AES (Advanced Encryption Standard) ist ein fortschrittlicher Verschlüsselungsstandard, der häufig zum Ver- und Entschlüsseln von Daten verwendet wird. Unten finden Sie den Beispielcode für die Datenverschlüsselung und -entschlüsselung mit dem AES-Algorithmus:

$key = '1234567890123456'; // 密钥,必须是16位
$data = 'sensitive data'; // 敏感数据

// 加密数据
$encryptedData = openssl_encrypt($data, 'AES-128-ECB', $key, OPENSSL_RAW_DATA);
$base64EncryptedData = base64_encode($encryptedData);

// 解密数据
$encryptedData = base64_decode($base64EncryptedData);
$decryptedData = openssl_decrypt($encryptedData, 'AES-128-ECB', $key, OPENSSL_RAW_DATA);

echo $decryptedData;  // 输出解密后的数据
  1. Daten mit dem DES-Algorithmus verschlüsseln und entschlüsseln

DES (Data Encryption Standard) ist ein symmetrischer Verschlüsselungsalgorithmus, der durch AES ersetzt wurde, aber es gibt ihn immer noch In einigen Szenarien wird der DES-Algorithmus verwendet. Das Folgende ist ein Beispielcode für die Datenverschlüsselung und -entschlüsselung mit dem DES-Algorithmus:

$key = '12345678'; // 密钥,必须是8位
$data = 'sensitive data'; // 敏感数据

// 加密数据
$encryptedData = openssl_encrypt($data, 'DES-ECB', $key, OPENSSL_RAW_DATA);
$base64EncryptedData = base64_encode($encryptedData);

// 解密数据
$encryptedData = base64_decode($base64EncryptedData);
$decryptedData = openssl_decrypt($encryptedData, 'DES-ECB', $key, OPENSSL_RAW_DATA);

echo $decryptedData;  // 输出解密后的数据

2. Asymmetrischer Verschlüsselungsalgorithmus

Der asymmetrische Verschlüsselungsalgorithmus verwendet ein Schlüsselpaar, nämlich einen öffentlichen Schlüssel und einen privaten Schlüssel, um Daten zu ver- und entschlüsseln . Der Vorteil dieses Algorithmus besteht darin, dass die Schlüsselübertragung und -verwaltung relativ einfach ist und die Sicherheit hoch ist.

  1. Daten mit dem RSA-Algorithmus verschlüsseln und entschlüsseln

RSA (Rivest-Shamir-Adleman) ist ein weit verbreiteter asymmetrischer Verschlüsselungsalgorithmus. Das Folgende ist ein Beispielcode für die Datenverschlüsselung und -entschlüsselung mithilfe des RSA-Algorithmus:

// 生成密钥对
$config = [
    'private_key_bits' => 2048 // 私钥长度
];
$res = openssl_pkey_new($config);
openssl_pkey_export($res, $privateKey); // 导出私钥
$publicKey = openssl_pkey_get_details($res)['key']; // 获取公钥

$data = 'sensitive data'; // 敏感数据

// 加密数据
openssl_public_encrypt($data, $encryptedData, $publicKey);
$base64EncryptedData = base64_encode($encryptedData);

// 解密数据
$encryptedData = base64_decode($base64EncryptedData);
openssl_private_decrypt($encryptedData, $decryptedData, $privateKey);

echo $decryptedData;  // 输出解密后的数据

3. Hash-Algorithmus

Der Hash-Algorithmus ist ein Algorithmus, der Daten beliebiger Länge in eine eindeutige Zeichenfolge fester Länge abbildet. Wird normalerweise zur Überprüfung der Integrität und Konsistenz von Daten verwendet, die irreversibel ist.

  1. Berechnen Sie den Hash-Wert von Daten mit dem MD5-Algorithmus

MD5 (Message Digest Algorithm 5) ist ein weit verbreiteter Hash-Algorithmus. Das Folgende ist ein Beispielcode, der den MD5-Algorithmus verwendet, um den Hash-Wert von Daten zu berechnen:

$data = 'sensitive data'; // 敏感数据

// 计算哈希值
$hashValue = md5($data);

echo $hashValue;  // 输出哈希值
  1. Verwenden Sie den SHA256-Algorithmus, um den Hash-Wert der Daten zu berechnen.

SHA256 (Secure Hash Algorithm 256-bit) ist mehr Sicherer Hash-Algorithmus. Nachfolgend finden Sie einen Beispielcode, der den SHA256-Algorithmus zur Berechnung des Hash-Werts von Daten verwendet:

$data = 'sensitive data'; // 敏感数据

// 计算哈希值
$hashValue = hash('sha256', $data);

echo $hashValue;  // 输出哈希值

In diesem Artikel werden gängige Methoden zum Verschlüsseln und Entschlüsseln sensibler Daten in PHP vorgestellt, darunter symmetrische Verschlüsselungsalgorithmen, asymmetrische Verschlüsselungsalgorithmen und Hashing-Algorithmen. Entwickler können je nach Situation den geeigneten Algorithmus auswählen, um die sensiblen Daten der Benutzer zu schützen. Es ist jedoch zu beachten, dass Verschlüsselungsalgorithmen lediglich ein Mittel zum Schutz der Daten darstellen und für eine umfassende Datensicherheit weitere Sicherheitsmaßnahmen erforderlich sind.

Das obige ist der detaillierte Inhalt vonSo verschlüsseln und entschlüsseln Sie sensible Daten in PHP. 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