Position actuelle: Accueil> Derniers articles> Comment utiliser bin2hex avec openssl_encrypt? Vous donner un exemple pratique

Comment utiliser bin2hex avec openssl_encrypt? Vous donner un exemple pratique

gitbox 2025-08-17

Comment utiliser bin2hex avec openssl_encrypt? Vous donner un exemple pratique

Dans PHP, BIN2HEX et OpenSSL_ENCRYPT sont deux fonctions très utiles qui sont utilisées pour convertir les données binaires en représentations hexadécimales et chiffrer les données. Cet article expliquera comment utiliser ces deux fonctions ensemble pour fournir un exemple de chiffrement réel.

1. Qu'est-ce que bin2hex ?

BIN2HEX est une fonction intégrée en PHP qui convertit les données binaires (généralement des chaînes ou d'autres données) en chaînes au format hexadécimal. Par exemple, convertissez les données d'octets en une représentation hexadécimale qui peut être stockée et transmise en toute sécurité.

Exemple:

 <span><span><span class="hljs-variable">$binary_data</span></span><span> = </span><span><span class="hljs-string">"hello"</span></span><span>;
</span><span><span class="hljs-variable">$hex_data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">bin2hex</span></span><span>(</span><span><span class="hljs-variable">$binary_data</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$hex_data</span></span><span>; </span><span><span class="hljs-comment">// Sortir:68656c6c6f</span></span><span>
</span></span>

2. Qu'est-ce que OpenSSL_ENCRYPT ?

OpenSSL_ENCRYPT est une fonction de chiffrement puissante qui utilise la bibliothèque OpenSSL pour crypter les données. Cette fonction prend en charge une variété d'algorithmes de chiffrement, tels que AES, DES, Blowfish, etc., et nécessite généralement de fournir une méthode de chiffrement, une clé de chiffrement et des données qui doivent être cryptées.

Exemple:

 <span><span><span class="hljs-variable">$plaintext</span></span><span> = </span><span><span class="hljs-string">"This is a secret message."</span></span><span>;
</span><span><span class="hljs-variable">$key</span></span><span> = </span><span><span class="hljs-string">"secretkey12345"</span></span><span>;
</span><span><span class="hljs-variable">$method</span></span><span> = </span><span><span class="hljs-string">"AES-128-ECB"</span></span><span>;
</span><span><span class="hljs-variable">$encrypted</span></span><span> = </span><span><span class="hljs-title function_ invoke__">openssl_encrypt</span></span><span>(</span><span><span class="hljs-variable">$plaintext</span></span><span>, </span><span><span class="hljs-variable">$method</span></span><span>, </span><span><span class="hljs-variable">$key</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$encrypted</span></span><span>; </span><span><span class="hljs-comment">// Sortir加密后的密文</span></span><span>
</span></span>

3. Des scénarios dans lesquels Bin2Hex et OpenSSL_ECCYPT sont utilisés ensemble

Le scénario où ces deux fonctions sont utilisées est généralement lors du chiffrement des données binaires, nous espérons que nous nous retrouvons avec une chaîne hexadécimale facile à traiter et à transférer. Ceci est utile pour certains scénarios d'application où des données cryptées sont nécessaires pour stocker des données chiffrées dans du texte, par exemple, stockées dans une base de données ou transmises sur un réseau.

Exemple: crypté avec OpenSSL_encrypt et converti en représentation hexadécimale en utilisant bin2hex

Supposons que nous ayons des données en texte clair qui doivent être cryptées AES-128-ECB et convertir le résultat en une chaîne hexadécimale pour le stockage.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Données en texte en clair d&#39;origine</span></span><span>
</span><span><span class="hljs-variable">$plaintext</span></span><span> = </span><span><span class="hljs-string">"Sensitive information here"</span></span><span>;

</span><span><span class="hljs-comment">// Clés et méthodes de chiffrement</span></span><span>
</span><span><span class="hljs-variable">$key</span></span><span> = </span><span><span class="hljs-string">"encryptionkey123"</span></span><span>;
</span><span><span class="hljs-variable">$method</span></span><span> = </span><span><span class="hljs-string">"AES-128-ECB"</span></span><span>;

</span><span><span class="hljs-comment">// Exécuter le cryptage</span></span><span>
</span><span><span class="hljs-variable">$encrypted</span></span><span> = </span><span><span class="hljs-title function_ invoke__">openssl_encrypt</span></span><span>(</span><span><span class="hljs-variable">$plaintext</span></span><span>, </span><span><span class="hljs-variable">$method</span></span><span>, </span><span><span class="hljs-variable">$key</span></span><span>);

</span><span><span class="hljs-comment">// utiliser bin2hex Convertir les données binaires cryptées en chaîne hexadécimale</span></span><span>
</span><span><span class="hljs-variable">$hex_encrypted</span></span><span> = </span><span><span class="hljs-title function_ invoke__">bin2hex</span></span><span>(</span><span><span class="hljs-variable">$encrypted</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Corde hexadécimale cryptée: "</span></span><span> . </span><span><span class="hljs-variable">$hex_encrypted</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

4. Pourquoi utiliser la conversion bin2hex ?

Dans les applications pratiques, le résultat du cryptage est généralement des données binaires, qui ne sont pas pratiquantes pour stocker ou transmettre directement. Surtout lorsque nous devons stocker des données cryptées dans une base de données ou les transférer sur le réseau, les données binaires peuvent causer des problèmes d'encodage. En utilisant BIN2HEX , vous pouvez convertir des données binaires chiffrées en chaînes ASCII, qui peuvent être stockées ou transférées en toute sécurité.

5. Exemple de scénarios d'utilisation

Scénario 1: stocker les données cryptées

Lorsque vous devez stocker des données cryptées dans une base de données, elle est généralement convertie au format hexadécimal, car certains champs de base de données peuvent ne pas prendre en charge directement le stockage des données binaires. La conversion des données cryptées en chaînes hexadécimales storables via BIN2HEX assure la compatibilité des données pendant la transmission et le stockage.

Scénario 2: transfert de données cryptées

Lors du transfert de données cryptées, en particulier via des demandes HTTP ou d'autres protocoles de texte, les données binaires peuvent être incorrectement codées ou perdues. Par conséquent, en convertissant les données cryptées en format hexadécimal, ces problèmes peuvent être évités et l'intégrité des données cryptées peut être assurée.

6. Processus de décryptage

Bien sûr, le processus de décryptage nécessite également l'utilisation de Hex2BIN pour convertir la chaîne hexagonale en données binaires, puis les décrypter via OpenSSL_DECRYPT .

Exemple:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Corde hexadécimale cryptée</span></span><span>
</span><span><span class="hljs-variable">$hex_encrypted</span></span><span> = </span><span><span class="hljs-string">"2b7e151628aed2a6abf7158809cf4f3c"</span></span><span>;

</span><span><span class="hljs-comment">// Convertir la chaîne hexadécimale en données binaires</span></span><span>
</span><span><span class="hljs-variable">$encrypted_data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">hex2bin</span></span><span>(</span><span><span class="hljs-variable">$hex_encrypted</span></span><span>);

</span><span><span class="hljs-comment">// Décryptage</span></span><span>
</span><span><span class="hljs-variable">$key</span></span><span> = </span><span><span class="hljs-string">"encryptionkey123"</span></span><span>;
</span><span><span class="hljs-variable">$method</span></span><span> = </span><span><span class="hljs-string">"AES-128-ECB"</span></span><span>;
</span><span><span class="hljs-variable">$decrypted</span></span><span> = </span><span><span class="hljs-title function_ invoke__">openssl_decrypt</span></span><span>(</span><span><span class="hljs-variable">$encrypted_data</span></span><span>, </span><span><span class="hljs-variable">$method</span></span><span>, </span><span><span class="hljs-variable">$key</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Décryptage后的明文: "</span></span><span> . </span><span><span class="hljs-variable">$decrypted</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Résumer

En combinant Bin2Hex et OpenSSL_ECCRYPT , nous pouvons convertir les données binaires chiffrées en chaînes hexadécimales pour un stockage et une transmission faciles. Cette approche améliore non seulement la portabilité des données, mais assure également la sécurité et l'intégrité des données cryptées. Espérons que, grâce aux exemples de cet article, vous pouvez maîtriser comment appliquer ces deux fonctions dans les projets réels pour améliorer l'efficacité et la fiabilité du traitement des données.