mysql數(shù)據(jù)庫的加密與解密方式
前言
考慮到數(shù)據(jù)庫層面的安全與加密,以及加密后不影響數(shù)據(jù)庫的分析與使用。本文將介紹mysql下加密方式的實現(xiàn)
方式一
將字段屬性設(shè)置為varbinary/binary/四個blob類型,等二進制字段屬性。
create table user2 ( id int null, username varbinary(200) null, id_card varbinary(200) null );
將username,id_card進行AES加密,密鑰為key,存入表中
INSERT INTO user2 VALUES (1, AES_ENCRYPT('張三', 'key'), AES_ENCRYPT('360153411530193713', 'key'));
加密效果
查詢的時候解密
select id, aes_decrypt(username,'key') as username,aes_decrypt(id_card,'key')as id_card from user2;
解密效果
方式二
將密文十六進制化,再存入varchar/char列。
此處需要用到HEX()來存入,用UNHEX()取出。
create table user ( id int null, username varchar(50) null, id_card varchar(256) collate latin1_german1_ci null, password varchar(60) null );
將username,id_card進行加密存入,密匙123zxq
insert into user(id, username, id_card, password) values (2, hex(aes_encrypt('李四', '123zxq')), hex(aes_encrypt('12057108241111', '123zxq')), 123456);
加密效果
解密
select id,AES_DECRYPT(UNHEX(username),'123zxq'),AES_DECRYPT(UNHEX(id_card),'123zxq') as id_card from user;
解密效果
總結(jié)
采用的AES的加密方式與java是一致的。
不過加密必然導(dǎo)致犧牲查詢的性能,用了加密函數(shù)后,查詢該字段,必定不走索引。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
在MySQL中奏響數(shù)據(jù)庫操作的樂章(推薦)
本文詳細介紹了如何在MySQL中進行數(shù)據(jù)庫操作,包括創(chuàng)建、刪除、修改數(shù)據(jù)庫等,以及如何使用字符集和校驗規(guī)則,以及備份和恢復(fù)數(shù)據(jù)庫的方法,同時,還討論了如何查看和修改數(shù)據(jù)庫的結(jié)構(gòu)和數(shù)據(jù),總的來說,本文為讀者提供了一份全面的MySQL數(shù)據(jù)庫操作指南2024-10-10MySQL8.0移除傳統(tǒng)的.frm文件原因及解讀
MySQL 8.0移除傳統(tǒng)的.frm文件,采用基于InnoDB的事務(wù)型數(shù)據(jù)字典,主要解決了元數(shù)據(jù)不一致、性能優(yōu)化、架構(gòu)簡化、增強功能支持、兼容性與升級問題,這一變革提高了數(shù)據(jù)庫的可靠性和性能,為未來的高級功能奠定了基礎(chǔ)2025-03-03Mysql調(diào)優(yōu)Explain工具詳解及實戰(zhàn)演練(推薦)
這篇文章主要介紹了Mysql調(diào)優(yōu)Explain工具詳解及實戰(zhàn)演練,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03mysql制作外鍵出現(xiàn)duplicate?key?name錯誤問題及解決
這篇文章主要介紹了mysql制作外鍵出現(xiàn)duplicate?key?name錯誤問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02MySQL 5.7升級8.0報異常:ONLY_FULL_GROUP_BY的問題解決
本文主要介紹了MySQL 5.7升級8.0報異常的問題解決,主要是ONLY_FULL_GROUP_BY,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11