欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

數(shù)據(jù)庫加密后怎么做模糊查詢?

admin
2024年9月24日 22:20 本文熱度 581
作者 l Hollis
來源 l Hollis(ID:hollischuang)

數(shù)據(jù)庫加密可以保障數(shù)據(jù)的安全,但是也會帶來很多的問題,其中有一個比較關(guān)鍵的就是數(shù)據(jù)的模糊查詢的問題。

當(dāng)我們通過加密后把密文存到數(shù)據(jù)庫中的時候,通過明文進行模糊查詢是不生效的。

比如Hollis加密后的內(nèi)容是363164846D8200899E314897E64A7420,那么當(dāng)我想用Ho來做模糊查詢時候,那么他的密文是71AAFD38484F3160708C6A6D2D5F736B,這兩個密文可以說是沒有任何關(guān)系的,所以,是無法直接做模糊查詢的。那么如何解決這個問題呢?


先解密再查詢

一種比較常見的方法,就是把要查詢的表中的所有符合條件的數(shù)據(jù),都加載到應(yīng)用內(nèi)存中,在內(nèi)存中逐個解密,然后再做模糊匹配。

這個方案的優(yōu)點就是實現(xiàn)簡單,缺點也很明顯,需要把所有數(shù)據(jù)都加載到內(nèi)存中,容易導(dǎo)致OOM。不推薦!


明文映射表

還有人提出過說單獨建一張表,其中保存明文和目標(biāo)表之間的映射,需要模糊查詢的時候先去明文映射表中查到主鍵,然后再去目標(biāo)表查詢數(shù)據(jù)。

但是這個方案基本上是屬于自欺欺人,因為一旦數(shù)據(jù)被拖庫,還是會丟。不推薦


數(shù)據(jù)庫解密函數(shù)

加密的時候如果用了函數(shù)的話,解密的時候我們也可以借助函數(shù)來做解密,同時做模糊查詢,比如加密時使用了AES_ENCRYPT算法:

-- 加密數(shù)據(jù)INSERT INTO user_data (username, credit_card) VALUES ('Hollis'AES_ENCRYPT('1234-5678-9012-3456''hollis_secret_key'));

那么在做模糊查詢的時候就可以這樣做:

SELECT * FROM user_data WHERE AES_DECRYPT(credit_card, 'hollis_secret_key') like 'Hol%';

這樣也就能實現(xiàn)一個模糊查詢的效果了,但是這個方案有個缺點,就是無法用到索引,不是因為用like,而是因為我們在字段上用了函數(shù),索引就會失效。

這個方案適合于表中數(shù)據(jù)量不大,或者查詢條件中還有其他查詢字段可以走索引的情況。


明文分詞

還有一個比較簡單的做法,也是很多大廠在用的方案

那就是對明文進行分詞,然后分別加密后存儲到數(shù)據(jù)庫中,比如Hollis這個需要加密的字符串,我們就可以把他拆成Ho 、Holl、llis等這幾個字符串,然后分別對他們進行加密,并保存到數(shù)據(jù)庫中

這樣當(dāng)我們使用Ho 、Holl、llis 進行查詢的時候,就可以對明文加密后去數(shù)據(jù)庫中匹配了。

這個方案的缺點也比較明顯,第一個就是需要冗余很多字段,第二個就是不夠靈活,如果我按照Holli來查詢的話就不支持了。

這個方案本質(zhì)就是一種比較典型的用空間換時間的做法,理論上只要你愿意,可以把所有的可能的查詢都冗余。


該文章在 2024/9/27 12:07:20 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved