建表:
CREATE TABLE `s1` (
`id` int(10) NOT NULL AUTO_INCREMENT,
-- 編碼格式問題需要設(shè)置字段類型為varbinary(30)
`name` varbinary(30) DEFAULT NULL,
`gender` char(6) DEFAULT NULL,
`email` varchar(50) DEFAULT NULL,
`phone` varchar(20) DEFAULT NULL,
`create_time` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `ups` (`phone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
注意點(diǎn):此處只對(duì)name字段進(jìn)行了字段類型的修改。
插入數(shù)據(jù)測(cè)試:(加密)
INSERT INTO homework.s1
(name, gender, email, phone, create_time)
VALUES(ENCODE('123','123'), 'dept', '1289482augu', '1222121', '2023-1-12');
ENCODE('123','123'):
第一個(gè)123:表示插入數(shù)據(jù)庫中的數(shù)據(jù)(即將要被轉(zhuǎn)換的數(shù)據(jù))
第二個(gè)123:表示轉(zhuǎn)換秘鑰,可以任意起名。在解密的時(shí)候會(huì)需要用到。
數(shù)據(jù)查詢:(解密)
SELECT DECODE(ENCODE('123','123'),'123' );
結(jié)果:
注意點(diǎn)1:此處DECODE的兩個(gè)參數(shù)分別為 需要解密的內(nèi)容(數(shù)據(jù)庫中的內(nèi)容),另一個(gè)是加密時(shí)的秘鑰。
注意點(diǎn)2:這里的秘鑰必須是加密時(shí)的秘鑰保持一致。
?這個(gè)就不是我們需要的查詢結(jié)果。
補(bǔ)充:
如果數(shù)據(jù)庫需要insert 的數(shù)據(jù)是中文,則無法正常顯示
例子:
插入數(shù)據(jù):
?
查詢數(shù)據(jù):
?由以上結(jié)果可知,中文在被加密后無法解密成正常顯示結(jié)果。文章來源:http://www.zghlxwxcb.cn/news/detail-484880.html
使用場(chǎng)景:
當(dāng)需要對(duì)一些只有包含數(shù)字或字母的字段時(shí),可以嘗試使用這種加密解密方式存儲(chǔ)數(shù)據(jù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-484880.html
到了這里,關(guān)于Mysql中的對(duì)數(shù)據(jù)庫字段的數(shù)據(jù)進(jìn)行加密的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!