


Bagaimana untuk melaksanakan tandatangan data dalam PHP? Cara menjana tandatangan yang disulitkan dalam php
May 28, 2025 pm 03:27 PMTerdapat tiga cara utama untuk menghasilkan tandatangan yang disulitkan dalam PHP. 1. Gunakan hash_hmac untuk tandatangan HMAC, dan menghasilkan tandatangan melalui algoritma kunci dan hash (seperti SHA256), yang sesuai untuk permintaan antara muka API dan pengesahan panggil balik; 2. Gunakan openssl_sign untuk melaksanakan tandatangan RSA, menggunakan tandatangan utama peribadi dan pengesahan utama awam, yang sesuai untuk senario keselamatan tinggi seperti panggilan balik pembayaran; 3. Menandatangani selepas parameter splicing, yang sering digunakan dalam antara muka API. Parameter perlu disusun mengikut peraturan dan ditambah dengan kunci untuk menjana tandatangan untuk mengelakkan serangan semula. Di samping itu, medan tandatangan disyorkan untuk bersatu menjadi tanda atau tandatangan dan dihantar melalui HTTPS untuk memastikan keselamatan.
Tandatangan data adalah keperluan yang sangat umum dalam senario yang melibatkan keselamatan antara muka atau penghantaran data. Idea utama PHP untuk melaksanakan tandatangan data adalah untuk menghasilkan "cap jari" yang unik (tandatangan) melalui algoritma penyulitan untuk mengesahkan integriti data dan sama ada sumber itu boleh dipercayai .
Berikut ini memperkenalkan beberapa kaedah PHP yang biasa digunakan untuk menghasilkan tandatangan yang disulitkan, yang sesuai untuk senario biasa seperti permintaan API, penyerahan bentuk, dan pengesahan fail.
1. Gunakan hash_hmac untuk tandatangan HMAC
HMAC adalah algoritma hashing berdasarkan kunci, yang sering digunakan untuk menghasilkan tandatangan data dengan kunci, dan jauh lebih selamat daripada hashing biasa.
$ data = 'data yang akan ditandatangani'; $ key = 'Kunci peribadi anda'; // Hanya pihak komunikasi yang tahu $ tandatangan = hash_hmac ('sha256', $ data, $ kunci);
- Nota : Parameter pertama
hash_hmac()
adalah algoritma hash yang digunakan,sha256
atausha1
biasanya digunakan. - Cadangan : Kuncinya harus cukup kompleks dan tidak boleh didedahkan kepada pihak ketiga.
- Tujuan : Sesuai untuk tandatangan permintaan antara muka API, pengesahan pemberitahuan panggil balik, dll.
2. Gunakan openssl_sign ke tandatangan data RSA
Jika anda memerlukan penyulitan asimetrik (seperti jika anda mempunyai sepasang kunci awam dan swasta), anda boleh menggunakan fungsi openssl_sign()
untuk melaksanakan tandatangan RSA.
$ data = 'data yang akan ditandatangani'; $ privateKey = openssl_pkey_get_private (file_get_contents ('private.pem')); OPENSSL_SIGN ($ data, $ tandatangan, $ privateKey, openssl_algo_sha256);
- Nota : Gunakan kekunci peribadi semasa menandatangani, dan gunakan kunci awam yang sepadan apabila mengesahkan.
- Nota : Panjang tandatangan RSA adalah terhad dan biasanya digunakan untuk pencernaan data dengan tandatangan yang lebih pendek.
- Cadangan : Berkenaan dengan senario di mana tahap keselamatan yang lebih tinggi diperlukan, seperti panggilan balik pembayaran, pengesahan identiti.
3. Parameter Splicing dan Penandatanganan (biasanya dijumpai dalam antara muka API)
Banyak platform terbuka memerlukan pemaju untuk menyusun dan menyambungkan pelbagai parameter mengikut peraturan dan menghasilkan tandatangan. Walaupun kaedah ini mudah tetapi sangat praktikal.
$ params = [ 'timestamp' => masa (), 'nonce' => uniqid (), 'Tindakan' => 'Log masuk' ]; // sort dengan kunci ksort ($ params); // jahitan ke dalam rentetan $ stringtosign = http_build_query ($ params, '', '&', php_query_rfc3986); // Tambah kunci dan tanda $ key = 'your_secret_key'; $ tandatangan = hash_hmac ('sha256', $ stringtoSign, $ kekunci);
- Nota : Kaedah penyortiran dan splicing mestilah selaras dengan pelayan, jika tidak, tandatangan akan gagal.
- Cadangan : Menambah cap waktu dan rentetan rawak (nonce) boleh menghalang serangan ulangan.
- Kesalahan biasa : Kaedah pengekodan yang tidak konsisten (seperti tidak menggunakan RFC3986), parameter yang hilang, dan penggunaan kes campuran.
4. Pemprosesan dan penghantaran selepas tandatangan
Setelah menghasilkan tandatangan, ia biasanya akan diserahkan kepada pihak lain dalam medan tetap, sebagai contoh:
$ requestData = [ 'data' => $ params, 'Sign' => $ Signature ];
- Cadangan : Nama medan tandatangan
sign
secara seragam atausignature
untuk pengenalan mudah. - Nota :
- Adalah disyorkan untuk menggunakan HTTPS untuk mencegah kecurian oleh orang tengah;
- Jangan letakkan maklumat sensitif secara langsung dalam data teks biasa;
- Selepas menerima permintaan itu, tandatangan harus dikira semula dan dibandingkan.
Pada dasarnya ini adalah kaedah. Pilih kaedah tandatangan yang sesuai mengikut keperluan perniagaan sebenar, seperti sama ada penyulitan asimetrik diperlukan, sama ada terdapat mekanisme pengurusan utama, dan lain -lain. Nampaknya mudah, tetapi terdedah kepada kesilapan dalam butiran pelaksanaan, seperti perintah splicing, kaedah pengekodan, penyimpanan utama, dan lain -lain, yang memerlukan perhatian khusus.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan tandatangan data dalam PHP? Cara menjana tandatangan yang disulitkan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

layui menyediakan pelbagai kaedah untuk mendapatkan data borang, termasuk mendapatkan terus semua data medan borang, mendapatkan nilai elemen bentuk tunggal, menggunakan kaedah formAPI.getVal() untuk mendapatkan nilai medan yang ditentukan, menyerikan data borang dan menggunakannya sebagai parameter permintaan AJAX, dan mendengar acara penyerahan Borang mendapat data.

Langkah penetapan lompat halaman log masuk Layui: Tambah kod lompat: Tambah pertimbangan dalam borang log masuk serah acara klik butang, dan lompat ke halaman yang ditentukan melalui window.location.href selepas berjaya log masuk. Ubah suai konfigurasi borang: tambah medan input tersembunyi pada elemen borang lay-filter="login", dengan nama "redirect" dan nilainya ialah alamat halaman sasaran.

Langkah-langkah untuk membina aplikasi satu halaman (SPA) menggunakan PHP: Cipta fail PHP dan muatkan Vue.js. Tentukan contoh Vue dan buat antara muka HTML yang mengandungi teks input dan output teks. Buat fail rangka kerja JavaScript yang mengandungi komponen Vue. Sertakan fail rangka kerja JavaScript ke dalam fail PHP.

Terdapat kaedah berikut untuk interaksi hadapan dan belakang menggunakan layui: Kaedah $.ajax: Permudahkan permintaan HTTP tak segerak. Objek permintaan tersuai: membenarkan menghantar permintaan tersuai. Kawalan borang: mengendalikan penyerahan borang dan pengesahan data. Kawalan muat naik: melaksanakan muat naik fail dengan mudah.

Servlet berfungsi sebagai jambatan untuk komunikasi pelanggan-pelayan dalam aplikasi Web Java dan bertanggungjawab untuk: memproses permintaan pelanggan menjana respons HTTP secara dinamik menguruskan keadaan sesi HTTP;

Teg borang digunakan untuk membuat borang yang membolehkan pengguna memasukkan data dan menyerahkannya ke pemprosesan sebelah pelayan. Atribut termasuk tindakan (URL pengendali), kaedah (kaedah penyerahan), nama (nama borang), sasaran (sasaran penyerahan), enctype (kaedah pengekodan data). Elemen borang termasuk kotak teks, senarai juntai bawah, kawasan teks, butang, dsb. Menghantar borang akan menghantar data ke pelayan melalui kaedah dan URL yang ditentukan.

Dalam Vue.js, acara ialah peristiwa JavaScript asli yang dicetuskan oleh penyemak imbas, manakala $event ialah objek peristiwa abstrak khusus Vue yang digunakan dalam komponen Vue. Secara amnya lebih mudah untuk menggunakan $event kerana ia diformat dan dipertingkatkan untuk menyokong pengikatan data. Gunakan acara apabila anda perlu mengakses kefungsian khusus objek acara asli.

DOM (Model Objek Dokumen) ialah API untuk mengakses, memanipulasi dan mengubah suai struktur pepohon dokumen HTML/XML Ia mewakili dokumen sebagai hierarki nod, termasuk nod Dokumen, Elemen, Teks dan Atribut, yang boleh digunakan untuk: akses. dan ubah suai struktur Dokumen Akses dan ubah suai gaya elemen Cipta/ubah suai kandungan HTML sebagai tindak balas kepada interaksi pengguna
