Heim >Backend-Entwicklung >PHP-Tutorial >Erstellen Sie eine Signatur aus Hash_hmac() und Sha256 in PHP

Erstellen Sie eine Signatur aus Hash_hmac() und Sha256 in PHP

王林
王林nach vorne
2024-02-29 14:34:24758Durchsuche

In PHP ist es eine gängige Sicherheitspraxis, die Hash_hmac()-Funktion in Kombination mit dem Sha256-Algorithmus zum Erstellen von Signaturen zu verwenden. Diese Methode kann dabei helfen, die Integrität und Authentizität von Daten während der Datenübertragung zu überprüfen und zu verhindern, dass Daten manipuliert oder gefälscht werden. Durch die Kombination von Hash_hmac() und Sha256 kann ein sicherer schlüsselbasierter Hash generiert werden, der eine sichere Übertragung und Verarbeitung von Daten gewährleistet. In diesem Artikel befassen wir uns eingehend mit der Verwendung von Hash_hmac() und Sha256 in PHP zum Erstellen von Signaturen und der Anwendung dieses Ansatzes zur Verbesserung der Datensicherheit.

Wir zeigen Ihnen, wie Sie hash_hmacsha256 加密器来创建安全签名 verwenden, das Sie in einer Datenbank speichern oder in Ihrem Anmeldeformular verwenden können.


Funktion in hash_hmac()php

hash_hmac() 创建一个字母数字键控的秘密哈希值。它利用称为 HMAC Erstellen Sie einen alphanumerisch verschlüsselten geheimen Hash. Es nutzt eine kryptografische Authentifizierungstechnologie namens HMAC-Methode.

Grammatik:

hash_hmac($alGo, $data, $key, $binary = false);
  1. $algo 是 hash_hmac 参数之一,用作签名秘密键控哈希值 (String).
  2. $data, ein Hashwert (normalerweise das Passwort des Benutzers). Es kann alphanumerisch sein.
  3. $key 是从 HMACMethode generiert, das ist der Schlüssel, den Sie von der Funktion erhalten, und andere Programmieranwendungen.
  4. Der letzte Parameter $binary ist ein Binärwert.

Es wirft Kleinbuchstaben-Hex auf TRUE 时返回原始数据,并在 FALSE.


Verwendung von hash_hmac()sha256 und sha256

in PHP

Beispiel:

<?php
//sha256 is a $algo
$PassWord= &#39;ThisIS123PasswORD&#39; ; //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> &#39;.$hash_it.&#39; </b>";
?>

Ausgabe:

Your encrypted signature is: &#39;.46e9757dc98f478c28f035cfa871dbd19b5a2bf8273225191bcca78801304813

Verwenden Sie hash_hmac()base64_encode() und base64_encode()

Wenn Sie möchten, dass Ihre kryptografischen Signaturen sicherer sind, können Sie auch den folgenden Codeausschnitt ausführen.

Beispiel:

<?php
$my_sign = "abc123";
$key = TRUE;
 $base64_encode = base64_encode(hash_hmac(&#39;sha256&#39;, $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.&#39; </b>";
}
?>

Ausgabe:

Your base64_decode(hash_hmac()); encrypted signature is is: &#39;.00g0QMQlnluXxijqot60WZf6InDi07b/Mb5lL7eVZ34

Verwenden Sie hash_hmac()sha256 并应用 hex2bin/bin2hex und sha256 in PHP und wenden Sie die hex2bin/bin2hex-Transformation an

  • hex2bin() – Diese Funktion dekodiert eine binäre Zeichenfolge , die hexadezimal kodiert wurde.
  • bin2hex() - 使用 bin2hex() Methode konvertiert ASCII-Zeichenfolge in einen Hexadezimalwert.

Nehmen wir an, Sie verfügen über wichtige Finanzdaten, die Sie verschlüsseln und einen Schlüssel für den Benutzer erstellen möchten.

Beispiel:

<?php
$createhashmackey = "2974924872949278487322348237749823";
$bank_acc = "029480247299262947328749287";
$current_bal = $sum * 10000 / 450;
$bank_locker_no = &#39;AC54-A76X&#39;;
$last_deposit= $when;
$se = hex2bi&#110;($createhashmackey);
$create_his_signature = $bank_acc . $current_bal. $bank_locker_no . $last_deposit;
$enigma = bin2he&#120;(hash_hmac(&#39;sha256&#39;, $create_his_signature, $se));
echo "The secret signature is.$enigma.";

Ausgabe:

The secret signature is.33633066323533383537663538323937373536393764396530343661663336666438636435363631383934363864383966316133633433633965343234336233.

Dies ist die Ausgabe für alle Codebeispiele in diesem Artikel.

在 PHP 中从 Hash_hmac() 和 Sha256 创建签名

Das obige ist der detaillierte Inhalt vonErstellen Sie eine Signatur aus Hash_hmac() und Sha256 in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lsjlt.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen