Rumah > pembangunan bahagian belakang > tutorial php > Cipta tandatangan daripada Hash_hmac() dan Sha256 dalam PHP

Cipta tandatangan daripada Hash_hmac() dan Sha256 dalam PHP

王林
Lepaskan: 2024-02-29 14:36:02
ke hadapan
797 orang telah melayarinya

Dalam PHP, adalah amalan keselamatan biasa untuk menggunakan fungsi Hash_hmac() bersama-sama dengan algoritma Sha256 untuk mencipta tandatangan. Kaedah ini boleh membantu mengesahkan integriti dan ketulenan data semasa penghantaran data dan mengelakkan data daripada diganggu atau dipalsukan. Dengan menggabungkan Hash_hmac() dan Sha256, cincang berasaskan kunci selamat boleh dijana, memastikan penghantaran dan pemprosesan data selamat. Dalam artikel ini, kami akan mendalami cara menggunakan Hash_hmac() dan Sha256 dalam PHP untuk membuat tandatangan dan cara menggunakan pendekatan ini untuk meningkatkan keselamatan data.

Kami akan menunjukkan kepada anda cara menggunakan hash_hmacsha256 加密器来创建安全签名, yang boleh anda simpan dalam pangkalan data atau gunakan dalam borang log masuk anda.


fungsi dalam hash_hmac()php

hash_hmac() 创建一个字母数字键控的秘密哈希值。它利用称为 HMAC Cipta cincang rahsia berkunci alfanumerik. Ia menggunakan teknologi pengesahan kriptografi yang dipanggil kaedah HMAC.

Tatabahasa:

hash_hmac($alGo, $data, $key, $binary = false);
Salin selepas log masuk
  1. $algo 是 hash_hmac 参数之一,用作签名秘密键控哈希值 (String).
  2. $data, nilai cincang (biasanya kata laluan pengguna). Ia boleh menjadi alfanumerik.
  3. $key 是从 HMAC kaedah yang dijana, iaitu kunci yang anda dapat daripada fungsi, dan kegunaan pengaturcaraan lain.
  4. Parameter terakhir $binary ialah nilai binari.

Ia melemparkan hex huruf kecil pada TRUE 时返回原始数据,并在 FALSE .


Menggunakan hash_hmac()sha256 dan sha256

dalam PHP

Contoh:

<?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>";
?>
Salin selepas log masuk

Keluaran:

Your encrypted signature is: &#39;.46e9757dc98f478c28f035cfa871dbd19b5a2bf8273225191bcca78801304813
Salin selepas log masuk

Gunakan hash_hmac()base64_encode() dan base64_encode()

Jika anda mahu tandatangan kriptografi anda lebih selamat, anda juga boleh melaksanakan coretan kod berikut.

Contoh:

<?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>";
}
?>
Salin selepas log masuk

Keluaran:

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

Gunakan hash_hmac()sha256 并应用 hex2bin/bin2hex dan sha256 dalam PHP dan gunakan transformasi hex2bin/bin2hex

  • hex2bi&#110;() - Fungsi ini menyahkod rentetan binari yang telah dikodkan dalam perenambelasan.
  • bin2he&#120;() - 使用 bin2he&#120;() Kaedah menukar rentetan ASCII kepada nilai perenambelasan.

Katakan anda mempunyai data kewangan kritikal yang ingin anda enkripsi dan buat kunci untuk pengguna.

Contoh:

<?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.";
Salin selepas log masuk

Keluaran:

The secret signature is.33633066323533383537663538323937373536393764396530343661663336666438636435363631383934363864383966316133633433633965343234336233.
Salin selepas log masuk

Ini adalah output untuk semua contoh kod dalam artikel ini.

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

Atas ialah kandungan terperinci Cipta tandatangan daripada Hash_hmac() dan Sha256 dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan