Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menandatangani dan pengesahan dalam PHP

Menandatangani dan pengesahan dalam PHP

WBOY
WBOYasal
2023-05-23 16:10:521753semak imbas

Dengan perkembangan teknologi Internet, keselamatan telah menjadi isu yang semakin penting, terutamanya keselamatan data yang dihantar dalam aplikasi Internet. Teknologi pengesahan tandatangan dan tandatangan telah menjadi cara penting untuk memastikan keselamatan data PHP, sebagai bahasa pengaturcaraan Internet yang popular, juga menyediakan fungsi berkaitan untuk pengesahan tandatangan dan tandatangan Artikel ini akan memperkenalkan pengesahan tandatangan dan tandatangan.

1. Konsep tandatangan dan pengesahan tandatangan

Tandatangan merujuk kepada penyulitan data untuk menghasilkan rentetan tertentu berdasarkan algoritma tandatangan digital. Rentetan ini boleh digunakan untuk mengesahkan integriti dan ketulenan data dan mengelakkan data daripada diganggu atau dipalsukan. Pengesahan tandatangan merujuk kepada menyahsulit rentetan yang ditandatangani untuk mengesahkan ketulenan dan integriti data yang dinyahsulit.

2. Fungsi tandatangan dalam PHP

Dalam PHP, fungsi tandatangan terutamanya termasuk fungsi hash_hmac dan openssl_sign.

  1. fungsi hash_hmac

fungsi hash_hmac ialah fungsi penyulitan cincang yang disertakan dengan PHP dan menyokong pelbagai algoritma cincang, seperti MD5, SHA-1, SHA-256 tunggu. Langkah-langkah untuk menggunakan fungsi ini untuk menandatangani adalah seperti berikut:

$algorithm = "sha256"; // 签名算法
$key = "abcdefg"; // 签名的密钥
$data = "hello world"; // 待签名的数据
$signature = hash_hmac($algorithm, $data, $key); // 签名结果

Dalam kod di atas, $algoritma menentukan jenis algoritma, $key ialah kunci tandatangan, $data ialah data yang akan ditandatangani dan $signature adalah hasil yang diperolehi selepas ditandatangani.

  1. fungsi openssl_sign

fungsi openssl_sign ialah fungsi sambungan openssl dalam PHP dan menyokong berbilang algoritma penyulitan Langkah-langkah untuk menggunakan fungsi ini untuk menandatangani adalah seperti berikut:

$algorithm = "sha256"; // 签名算法
$key = "abcdefg"; // 签名的密钥
$data = "hello world"; // 待签名的数据
openssl_sign($data, $signature, $key, $algorithm); // 签名结果

Dalam kod di atas, $algoritma menentukan jenis algoritma, $key ialah kunci tandatangan, $data ialah data yang akan ditandatangani, dan $signature ialah rentetan yang diperolehi selepas ditandatangani.

3. Fungsi pengesahan tandatangan dalam PHP

Dalam PHP, fungsi pengesahan tandatangan terutamanya termasuk fungsi hash_hmac dan openssl_verify.

  1. fungsi hash_hmac

Untuk data yang ditandatangani menggunakan fungsi hash_hmac, langkah-langkah untuk menggunakannya untuk pengesahan tandatangan adalah seperti berikut:

rreee

Dalam kod di atas , Mula-mula gunakan fungsi hash_hmac untuk menandatangani data untuk mendapatkan rentetan tandatangan. Kemudian gunakan fungsi hash_equals untuk menentukan sama ada hasil tandatangan adalah sama, dan kemudian tentukan sama ada pengesahan tandatangan berjaya.

  1. fungsi openssl_verify

Untuk data yang ditandatangani menggunakan fungsi openssl_sign, langkah-langkah untuk menggunakannya untuk pengesahan tandatangan adalah seperti berikut:

$algorithm = "sha256"; // 签名算法
$key = "abcdefg"; // 签名的密钥
$data = "hello world"; // 待签名的数据
$signature = hash_hmac($algorithm, $data, $key); // 签名结果

// 验证签名
if (hash_equals($signature, hash_hmac($algorithm, $data, $key))) {
    echo "验签成功!";
} else {
    echo "验签失败!";
}

Dalam kod di atas , Mula-mula gunakan fungsi openssl_sign untuk menandatangani data dan mendapatkan rentetan tandatangan. Kemudian gunakan fungsi openssl_verify untuk menentukan sama ada hasil tandatangan adalah betul, dan kemudian tentukan sama ada pengesahan tandatangan berjaya.

4. Ringkasan

Melalui pengenalan artikel ini, kami telah mempelajari tentang konsep asas pengesahan tandatangan dan tandatangan dalam PHP dan cara menggunakan fungsi yang berkaitan. Dalam aplikasi Internet sebenar, teknologi pengesahan tandatangan dan tandatangan telah menjadi cara penting untuk memastikan keselamatan data Membiasakan diri dengan teknologi pengesahan tandatangan dan tandatangan dalam PHP boleh membantu kami memastikan keselamatan data dengan lebih baik.

Atas ialah kandungan terperinci Menandatangani dan pengesahan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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