Maison >développement back-end >tutoriel php >Créer une signature à partir de Hash_hmac() et Sha256 en PHP
En PHP, c'est une pratique de sécurité courante d'utiliser la fonction Hash_hmac() en combinaison avec l'algorithme Sha256 pour créer des signatures. Cette méthode peut aider à vérifier l’intégrité et l’authenticité des données pendant la transmission des données et à empêcher que les données soient falsifiées ou falsifiées. En combinant Hash_hmac() et Sha256, un hachage sécurisé basé sur une clé peut être généré, garantissant une transmission et un traitement sécurisés des données. Dans cet article, nous examinerons en profondeur comment utiliser Hash_hmac() et Sha256 en PHP pour créer des signatures, et comment appliquer cette approche pour améliorer la sécurité des données.
Nous allons vous montrer comment utiliser hash_hmac
和 sha256
加密器来创建安全签名
, que vous pouvez stocker dans une base de données ou utiliser dans votre formulaire de connexion.
hash_hmac()
php
hash_hmac()
创建一个字母数字键控的秘密哈希值。它利用称为 HMAC
Créez un hachage secret à clé alphanumérique. Il utilise une technologie d'authentification cryptographique appelée méthode HMAC
.
Grammaire :
hash_hmac($alGo, $data, $key, $binary = false);
$algo
是 hash_hmac 参数之一,用作签名秘密键控哈希值 (String
). $data
, une valeur de hachage (généralement le mot de passe de l'utilisateur). Il peut être alphanumérique. $key
是从 HMAC
méthode générée, qui est la clé que vous obtenez de la fonction, et d'autres utilisations de programmation. $binary
est une valeur binaire.
Il lance un hex minuscule sur TRUE
时返回原始数据,并在 FALSE
.
hash_hmac()
和 sha256
et sha256
Exemple :
<?php //sha256 is a $algo $PassWord= 'ThisIS123PasswORD' ; //data $secret ="ABCabc"; //$key //false is bool value to check whether the method works or not $hash_it = hash_hmac("sha256", utf8_encode($Password), $secret, false);//all four parameters if(!$hash_it){ //checks true or false echo "Password was not encrypted!"; } echo "Your encrypted signature is:<b> '.$hash_it.' </b>"; ?>
Résultat :
Your encrypted signature is: '.46e9757dc98f478c28f035cfa871dbd19b5a2bf8273225191bcca78801304813
hash_hmac()
和 base64_encode()
et base64_encode()
Si vous souhaitez que vos signatures cryptographiques soient plus sécurisées, vous pouvez également exécuter l'extrait de code suivant.
Exemple :
<?php $my_sign = "abc123"; $key = TRUE; $base64_encode = base64_encode(hash_hmac('sha256', $my_sign, $key, true)); if(!$base64_encode){ echo "Your signature with the base64_decode(hash_hmac()); failed"; } else{ echo "Your base64_decode(hash_hmac()); encrypted signature is is:<b> $base64_encode.' </b>"; } ?>
Résultat :
Your base64_decode(hash_hmac()); encrypted signature is is: '.00g0QMQlnluXxijqot60WZf6InDi07b/Mb5lL7eVZ34
hash_hmac()
和 sha256
并应用 hex2bin
/bin2hex
et sha256
en PHP et appliquez la transformation hex2bin
/bin2hex
hex2bin()
- Cette fonction décode une chaîne binaire qui a été codée en hexadécimal. bin2hex()
- 使用 bin2hex()
La méthode convertit la chaîne ASCII en valeur hexadécimale. Disons que vous disposez de données financières critiques que vous souhaitez chiffrer et créer une clé pour l'utilisateur.
Exemple :
<?php $createhashmackey = "2974924872949278487322348237749823"; $bank_acc = "029480247299262947328749287"; $current_bal = $sum * 10000 / 450; $bank_locker_no = 'AC54-A76X'; $last_deposit= $when; $se = hex2bin($createhashmackey); $create_his_signature = $bank_acc . $current_bal. $bank_locker_no . $last_deposit; $enigma = bin2hex(hash_hmac('sha256', $create_his_signature, $se)); echo "The secret signature is.$enigma.";
Résultat :
The secret signature is.33633066323533383537663538323937373536393764396530343661663336666438636435363631383934363864383966316133633433633965343234336233.
Il s'agit du résultat de tous les exemples de code de cet article.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!