Cara membangunkan sistem penyulitan dan penyahsulitan kata laluan yang boleh dipercayai menggunakan PHP dan Vue.js
Pengenalan:
Dalam dunia dalam talian, keselamatan kata laluan amat penting. Untuk melindungi privasi dan keselamatan pengguna, kami perlu menggunakan sistem penyulitan dan penyahsulitan kata laluan yang boleh dipercayai. Dalam artikel ini, kami akan memperkenalkan cara membangunkan sistem penyulitan dan penyahsulitan kata laluan yang boleh dipercayai menggunakan PHP dan Vue.js, dengan contoh kod.
1 Memahami prinsip penyulitan dan penyahsulitan kata laluan
Sebelum memulakan pembangunan, kita perlu memahami prinsip penyulitan dan penyahsulitan kata laluan. Secara umumnya, kami menggunakan algoritma pencincangan untuk menyulitkan kata laluan. Algoritma cincang ialah algoritma yang menukar data dari sebarang panjang kepada output panjang tetap dan digunakan secara meluas dalam bidang kriptografi. Apabila disulitkan, kata laluan ditukar kepada nilai cincang panjang tetap dan disimpan dalam pangkalan data. Apabila mengesahkan kata laluan, kami membandingkan kata laluan yang dimasukkan dengan nilai cincang yang disimpan dalam pangkalan data untuk menentukan ketepatan kata laluan.
2. Gunakan PHP untuk melaksanakan fungsi penyulitan dan penyahsulitan kata laluan
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50), password VARCHAR(255) );
encrypt.php
dalam direktori akar projek dan tulis kod berikut: encrypt.php
的文件,并写入以下代码:<?php function encryptPassword($password) { $hash = password_hash($password, PASSWORD_BCRYPT); return $hash; } function verifyPassword($password, $hash) { return password_verify($password, $hash); }
以上代码中,encryptPassword
函数用于将密码加密为哈希值,verifyPassword
函数用于验证密码的正确性。
encrypt.php
文件中,我们还需要编写与数据库交互的代码。以下是一个示例:<?php // 连接数据库 $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "example_db"; $conn = new mysqli($servername, $username, $password, $dbname); // 添加用户 $username = "example_user"; $password = "example_password"; $hash = encryptPassword($password); $sql = "INSERT INTO users (username, password) VALUES ('$username', '$hash')"; $conn->query($sql); // 验证密码 $username = "example_user"; $password = "example_password"; $sql = "SELECT password FROM users WHERE username = '$username'"; $result = $conn->query($sql); if ($result->num_rows > 0) { $row = $result->fetch_assoc(); $hash = $row["password"]; if (verifyPassword($password, $hash)) { echo "密码正确"; } else { echo "密码错误"; } } else { echo "用户不存在"; } $conn->close();
以上代码中,我们首先连接到MySQL数据库,并添加了一个示例用户。接下来,我们通过输入的用户名来查找对应的密码哈希值,并通过verifyPassword
函数验证密码的正确性。
三、使用Vue.js实现前端页面和交互
npm install vue
index.html
的文件,并写入以下代码:<!DOCTYPE html> <html> <head> <title>Password Encryption and Decryption System</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <h1>密码加密与解密系统</h1> <input type="password" v-model="password" placeholder="密码"> <button @click="encryptPassword">加密密码</button> <button @click="verifyPassword">验证密码</button> <div v-if="encryptedPassword"> <p>加密后的密码:{{ encryptedPassword }}</p> <p v-if="verified">密码验证通过</p> <p v-else>密码验证失败</p> </div> </div> <script> new Vue({ el: '#app', data: { password: '', encryptedPassword: '', verified: false }, methods: { encryptPassword() { // 发送加密请求并将加密后的结果更新到页面上 this.encryptedPassword = '加密后的密码'; }, verifyPassword() { // 发送验证请求并将验证结果更新到页面上 this.verified = true; } } }); </script> </body> </html>
以上代码中,我们创建了一个Vue的实例,并在页面上添加了密码输入框和两个按钮。点击"加密密码"按钮时,将触发encryptPassword
方法,该方法会发送加密请求给后端,并将加密后的密码更新到页面上。点击"验证密码"按钮时,将触发verifyPassword
Dalam kod di atas, fungsi encryptPassword
digunakan Kata laluan disulitkan ke dalam nilai cincang dan fungsi verifyPassword
digunakan untuk mengesahkan ketepatan kata laluan.
encrypt.php
, kami juga perlu menulis kod untuk berinteraksi dengan pangkalan data. Berikut ialah contoh: 🎜🎜rrreee🎜Dalam kod di atas, kami mula-mula menyambung ke pangkalan data MySQL dan menambah pengguna sampel. Seterusnya, kami menggunakan nama pengguna yang dimasukkan untuk mencari nilai cincang kata laluan yang sepadan dan mengesahkan ketepatan kata laluan melalui fungsi verifyPassword
. 🎜🎜3. Gunakan Vue.js untuk melaksanakan halaman hadapan dan interaksi🎜🎜🎜Pasang Vue.js🎜Untuk menggunakan Vue.js, kami perlu memasang pakej kebergantungan Vue.js terlebih dahulu. Ia boleh dipasang menggunakan npm atau benang. Jalankan arahan berikut dalam direktori akar projek: 🎜🎜rrreeeindex.html
dalam direktori akar projek , dan tulis kod berikut: 🎜🎜rrreee🎜Dalam kod di atas, kami mencipta contoh Vue dan menambah kotak input kata laluan dan dua butang pada halaman. Apabila anda mengklik butang "Encrypt Password", kaedah encryptPassword
akan dicetuskan, yang akan menghantar permintaan penyulitan ke bahagian belakang dan mengemas kini kata laluan yang disulitkan ke halaman. Apabila butang "Sahkan Kata Laluan" diklik, kaedah verifyPassword
akan dicetuskan, yang akan menghantar permintaan pengesahan ke bahagian belakang dan mengemas kini hasil pengesahan ke halaman. 🎜🎜Kesimpulan: 🎜Dengan menggunakan PHP dan Vue.js, kami boleh membangunkan sistem penyulitan dan penyahsulitan kata laluan yang boleh dipercayai. Dalam artikel ini, kami mempelajari tentang prinsip penyulitan kata laluan dan penyahsulitan, serta menyediakan contoh kod PHP dan Vue.js untuk melaksanakan fungsi penyulitan dan pengesahan kata laluan. Saya harap artikel ini dapat membantu anda dan boleh memberi sedikit rujukan semasa pembangunan. 🎜Atas ialah kandungan terperinci Bagaimana untuk membangunkan sistem penyulitan dan penyahsulitan kata laluan yang boleh dipercayai menggunakan PHP dan Vue.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!