Rumah  >  Artikel  >  pangkalan data  >  Cara menggunakan penyulitan MD5 dalam MySQL

Cara menggunakan penyulitan MD5 dalam MySQL

王林
王林ke hadapan
2023-05-28 14:16:435117semak imbas

Apakah itu MD5?

MD5 Message-Digest Agorithm (Bahasa Inggeris: MD5 Message-Digest Agorithm), fungsi cincang kriptografi yang digunakan secara meluas yang boleh menghasilkan nilai cincang 128-bit (16-bait) (nilai cincang) , digunakan untuk memastikan lengkap dan penghantaran maklumat yang konsisten. MD5 telah direka oleh pakar kriptografi Amerika Ronald LinnRivest dan didedahkan kepada umum pada tahun 1992 untuk menggantikan algoritma MD4. Program algoritma ini dinyatakan dalam piawaian RFC1321. Selepas tahun 1996, ia telah disahkan bahawa algoritma mempunyai kelemahan dan boleh dipecahkan Untuk data yang memerlukan keselamatan yang tinggi, pakar biasanya mengesyorkan menggunakan algoritma lain, seperti SHA-2, ia telah disahkan bahawa algoritma MD5 tidak boleh menghalang perlanggaran, jadi Tidak sesuai untuk pengesahan keselamatan, seperti pengesahan kunci awam SSL atau tandatangan digital.

Pengalaman pertama dengan MD5

Cara menggunakan penyulitan MD5 dalam MySQL

Sediakan jadual pengguna ringkas dalam mysql untuk operasi kes.

Seterusnya, uji pelbagai pernyataan sql:

Pernyataan sisip biasa (teks biasa kata laluan):

-- 普通新增语句(明文密码)
insert into user(uname,upass) values ('tom','1001');

Sulitkan apabila memasukkan maklumat**: **

-- 插入时使用MD5 算法加密
insert into user(uname,upass) values ('jack',MD5('1002'));

Pertanyaan dan lihat hasil:

Cara menggunakan penyulitan MD5 dalam MySQL

Ubah suai: Gunakan algoritma MD5 untuk menukar kata laluan pentadbir akaun.

-- 将原密码换为MD5加密后的密码
update user set upass=MD5(upass) where id =1;
-- 将原密码123456修改为 MD5加密后的密码(666)
update user set upass=MD5('666') where id =2;

Keputusan:

Cara menggunakan penyulitan MD5 dalam MySQL

Sulitkan semua kata laluan:

-- 加密全部密码
update user set upass=MD5(upass)

Cara menggunakan penyulitan MD5 dalam MySQL

Pertanyaan bersyarat untuk pengesahan:

-- 根据账号密码 查询对应账号信息
select * from user where uname='admin' and upass=MD5('123')

Cara menggunakan penyulitan MD5 dalam MySQL

-- 测试 将密码修改为666 的账号信息
select * from user where uname='root' and upass=MD5('666')

Cara menggunakan penyulitan MD5 dalam MySQL

Di atas ialah penyulitan ringkas beberapa maklumat dalam pangkalan data mysql melalui algoritma MD5 Pengetahuan khusus perlu diisih keluar.

Kaedah lain dalam MySQL

(1) fungsi PASSWORD():

-- password() 函数加密
update userinfo set password =password('333') where id=6
-- 查询验证
select * from userinfo where password=password('333')

password(str) mengira dan mengembalikan rentetan kata laluan yang disulitkan daripada str kata laluan plaintext asal, Apabila parameter adalah null, null dikembalikan. Penyulitan kata laluan adalah sehala dan tidak boleh diterbalikkan.

(2) ENCODE() function

ENCODE(str, pass_str) function digunakan untuk mengekod rentetan teks biasa dan mengembalikan rentetan binari selepas pengekodan.

Gunakan pswd_str sebagai kata laluan, encrypt str.

str: Ia digunakan untuk menentukan teks biasa yang akan dikodkan

pass_str: Ia digunakan untuk menentukan rentetan kata laluan kepada aksara teks biasa rentetan dikodkan.

-- 字符串
select encode('hello','nice')

Cara menggunakan penyulitan MD5 dalam MySQL

-- 字符串和数字
select encode('nihao666','nice')

Cara menggunakan penyulitan MD5 dalam MySQL

(3) DECODE(crypt_str,pass_str)

Gunakan pswd_str sebagai kata laluan , Nyahsulit rentetan crypt_str yang disulitkan, crypt_str ialah rentetan yang dikembalikan oleh encode().

select DECODE('nihao666','nice')

Cara menggunakan penyulitan MD5 dalam MySQL

-- 使用decode函数解密encode加密的字符串
select DECODE(ENCODE('nihao666','nice'),'nice');

Cara menggunakan penyulitan MD5 dalam MySQL

Atas ialah kandungan terperinci Cara menggunakan penyulitan MD5 dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam