在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何對(duì)加密后的數(shù)據(jù)進(jìn)行模糊查詢(xún)

Android編程精選 ? 來(lái)源:Android編程精選 ? 作者:Android編程精選 ? 2022-08-16 10:14 ? 次閱讀

我們知道加密后的數(shù)據(jù)對(duì)模糊查詢(xún)不是很友好,本篇就針對(duì)加密數(shù)據(jù)模糊查詢(xún)這個(gè)問(wèn)題來(lái)展開(kāi)講一講實(shí)現(xiàn)的思路,希望對(duì)大家有所啟發(fā)。

為了數(shù)據(jù)安全我們?cè)陂_(kāi)發(fā)過(guò)程中經(jīng)常會(huì)對(duì)重要的數(shù)據(jù)進(jìn)行加密存儲(chǔ),常見(jiàn)的有:密碼、手機(jī)號(hào)、電話(huà)號(hào)碼、詳細(xì)地址、銀行卡號(hào)、信用卡驗(yàn)證碼等信息,這些信息對(duì)加解密的要求也不一樣,比如說(shuō)密碼我們需要加密存儲(chǔ),一般使用的都是不可逆的慢hash算法,慢hash算法可以避免暴力破解(典型的用時(shí)間換安全性)。

在檢索時(shí)我們既不需要解密也不需要模糊查找,直接使用密文完全匹配,但是手機(jī)號(hào)就不能這樣做,因?yàn)槭謾C(jī)號(hào)我們要查看原信息,并且對(duì)手機(jī)號(hào)還需要支持模糊查找,因此我們今天就針對(duì)可逆加解密的數(shù)據(jù)支持模糊查詢(xún)來(lái)看看有哪些實(shí)現(xiàn)方式。

在網(wǎng)上隨便搜索了一下,關(guān)于《加密后的模糊查詢(xún)》 的帖子很多,順便整理了一下實(shí)現(xiàn)的方法,不得不說(shuō)很多都是不靠譜的做法,甚至有一些沙雕做法,接下來(lái)我們就對(duì)這些做法來(lái)講講實(shí)現(xiàn)思路和優(yōu)劣性。

如何對(duì)加密后的數(shù)據(jù)進(jìn)行模糊查詢(xún)

我整理了一下對(duì)加密的數(shù)據(jù)模糊查詢(xún)大致分為三類(lèi)做法,如下所示:

  • 沙雕做法(不動(dòng)腦思考直男的思路,只管實(shí)現(xiàn)功能從不深入思考問(wèn)題)
  • 常規(guī)做法(思考了查詢(xún)性能問(wèn)題,也會(huì)使用一些存儲(chǔ)空間換性能等做法)
  • 超神做法(比較高端的做法從算法層面上思考)

我們就對(duì)這三種實(shí)現(xiàn)方法一一來(lái)講講實(shí)現(xiàn)思路和優(yōu)劣性,首先我們先看沙雕做法。

沙雕做法

  • 將所有數(shù)據(jù)加載到內(nèi)存中進(jìn)行解密,解密后通過(guò)程序算法來(lái)模糊匹配
  • 將密文數(shù)據(jù)映射一份明文映射表,俗稱(chēng)tag表,然后模糊查詢(xún)tag來(lái)關(guān)聯(lián)密文數(shù)據(jù)

沙雕一

我們先來(lái)看看第一個(gè)做法,將所有數(shù)據(jù)加載到內(nèi)存中進(jìn)行解密,這個(gè)如果數(shù)據(jù)量小的話(huà)可以使用這個(gè)方式來(lái)做,這樣做既簡(jiǎn)單又實(shí)惠,如果數(shù)據(jù)量大的話(huà)那就是災(zāi)難,我們來(lái)大致算一下。

一個(gè)英文字母(不分大小寫(xiě))占一個(gè)字節(jié)的空間,一個(gè)中文漢字占兩個(gè)字節(jié)的空間,用DES來(lái)舉例,13800138000加密后的串HE9T75xNx6c5yLmS5l4r6Q==占24個(gè)字節(jié)。

91a4e1c6-1cf7-11ed-ba43-dac502259ad0.png

輕則上百兆,重則上千兆,這樣分分鐘給應(yīng)用程序整成Out of memory,這樣做如果數(shù)據(jù)少只有幾百、幾千、幾萬(wàn)條時(shí)是完全可以這樣做的,但是數(shù)據(jù)量大就強(qiáng)烈不建議了。

沙雕二

我們?cè)賮?lái)看第二個(gè)做法,將密文數(shù)據(jù)映射一份明文映射表,然后模糊查詢(xún)映射表來(lái)關(guān)聯(lián)密文數(shù)據(jù),what????。?!那我們?yōu)槭裁匆獙?duì)數(shù)據(jù)加密呢,直接不加密不是更好么!

我們既然對(duì)數(shù)據(jù)加密肯定是有安全訴求才會(huì)這樣做,增加一個(gè)明文的映射表就違背了安全訴求,這樣做既不安全也不方便完全是脫褲子放x,多此一舉,強(qiáng)且不推薦。

常規(guī)做法

我們接下來(lái)看看常規(guī)的做法,也是最廣泛使用的方法,此類(lèi)方法及滿(mǎn)足的數(shù)據(jù)安全性,又對(duì)查詢(xún)友好。

  • 在數(shù)據(jù)庫(kù)實(shí)現(xiàn)加密算法函數(shù),在模糊查詢(xún)的時(shí)候使用decode(key) like '%partial%
  • 對(duì)密文數(shù)據(jù)進(jìn)行分詞組合,將分詞組合的結(jié)果集分別進(jìn)行加密,然后存儲(chǔ)到擴(kuò)展列,查詢(xún)時(shí)通過(guò)key like '%partial%'

常規(guī)一

在數(shù)據(jù)庫(kù)中實(shí)現(xiàn)與程序一致的加解密算法,修改模糊查詢(xún)條件,使用數(shù)據(jù)庫(kù)加解密函數(shù)先解密再模糊查找,這樣做的優(yōu)點(diǎn)是實(shí)現(xiàn)成本低,開(kāi)發(fā)使用成本低,只需要將以往的模糊查找稍微修改一下就可以實(shí)現(xiàn),但是缺點(diǎn)也很明顯,這樣做無(wú)法利用數(shù)據(jù)庫(kù)的索引來(lái)優(yōu)化查詢(xún),甚至有一些數(shù)據(jù)庫(kù)可能無(wú)法保證與程序?qū)崿F(xiàn)一致的加解密算法,但是對(duì)于常規(guī)的加解密算法都可以保證與應(yīng)用程序一致。

如果對(duì)查詢(xún)性能要求不是特別高、對(duì)數(shù)據(jù)安全性要求一般,可以使用常見(jiàn)的加解密算法比如說(shuō)AES、DES之類(lèi)的也是一個(gè)不錯(cuò)的選擇。

如果公司有自己的算法實(shí)現(xiàn),并且沒(méi)有提供多端的算法實(shí)現(xiàn),要么找個(gè)算法好的人去研究吃透補(bǔ)全多端實(shí)現(xiàn),要么放棄使用這個(gè)辦法。

常規(guī)二

對(duì)密文數(shù)據(jù)進(jìn)行分詞組合,將分詞組合的結(jié)果集分別進(jìn)行加密,然后存儲(chǔ)到擴(kuò)展列,查詢(xún)時(shí)通過(guò)key like '%partial%',這是一個(gè)比較劃算的實(shí)現(xiàn)方法,我們先來(lái)分析一下它的實(shí)現(xiàn)思路。

先對(duì)字符進(jìn)行固定長(zhǎng)度的分組,將一個(gè)字段拆分為多個(gè),比如說(shuō)根據(jù)4位英文字符(半角),2個(gè)中文字符(全角)為一個(gè)檢索條件,舉個(gè)例子:

ningyu1使用4個(gè)字符為一組的加密方式,第一組ning ,第二組ingy ,第三組ngyu ,第四組gyu1 … 依次類(lèi)推。

如果需要檢索所有包含檢索條件4個(gè)字符的數(shù)據(jù)比如:ingy ,加密字符后通過(guò) key like “%partial%” 查庫(kù)。

我們都知道加密后長(zhǎng)度會(huì)增長(zhǎng),增長(zhǎng)的這部分長(zhǎng)度存儲(chǔ)就是我們要花費(fèi)的額外成本,典型的使用成本來(lái)?yè)Q取速度,密文增長(zhǎng)的幅度隨著算法不同而不同以DES舉例,13800138000加密前占11個(gè)字節(jié),加密后的串HE9T75xNx6c5yLmS5l4r6Q==占24個(gè)字節(jié),增長(zhǎng)是2.18倍,所以一個(gè)優(yōu)秀的算法是多么的重要,能為公司節(jié)省不少成本,但是話(huà)又說(shuō)回來(lái)算法工程師的工資也不低,所以我也不知道是節(jié)省成本還是增加成本,哈哈哈…你們自己算吧。

回到主題,這個(gè)方法雖然可以實(shí)現(xiàn)加密數(shù)據(jù)的模糊查詢(xún),但是對(duì)模糊查詢(xún)的字符長(zhǎng)度是有要求的,以我上面舉的例子模糊查詢(xún)字符原文長(zhǎng)度必須大于等于4個(gè)英文/數(shù)字,或者2個(gè)漢字,再短的長(zhǎng)度不建議支持,因?yàn)榉衷~組合會(huì)增多從而導(dǎo)致存儲(chǔ)的成本增加,反而安全性降低。

大家是否都對(duì)接過(guò) 淘寶、拼多多、JD他們的api,他們對(duì)平臺(tái)訂單數(shù)據(jù)中的用戶(hù)敏感數(shù)據(jù)就是加密的同時(shí)支持模糊查詢(xún),使用就是這個(gè)方法,下面我整理了幾家電商平臺(tái)的密文字段檢索方案的說(shuō)明,感興趣的可以查看下面鏈接。

  • 淘寶密文字段檢索方案:https://open.taobao.com/docV3.htm?docId=106213&docType=1

  • 阿里巴巴文字段檢索方案:https://jaq-doc.alibaba.com/docs/doc.htm?treeId=1&articleId=106213&docType=1

  • 拼多多密文字段檢索方案:https://open.pinduoduo.com/application/document/browse?idStr=3407B605226E77F2

  • 京東密文字段檢索方案:https://jos.jd.com/commondoc?listId=345

ps. 基本上都是一樣的,果然都是互相抄襲,連加密后的數(shù)據(jù)格式都一致。

這個(gè)方法優(yōu)點(diǎn)就是實(shí)現(xiàn)起來(lái)不算復(fù)雜,使用起來(lái)也較為簡(jiǎn)單,算是一個(gè)折中的做法,因?yàn)闀?huì)有擴(kuò)展字段存儲(chǔ)成本會(huì)有升高,但是可利用數(shù)據(jù)庫(kù)索引優(yōu)化查詢(xún)速度,推薦使用這個(gè)方法。

超神做法

我們接下來(lái)看看優(yōu)秀的做法,此類(lèi)做法難度較高,都是從算法層面來(lái)考慮,有些甚至?xí)O(shè)計(jì)一個(gè)新算法,雖然已有一些現(xiàn)成的算法參考,但是大多都是半成品無(wú)法拿來(lái)直接使用,所以還是要有人去深入研究和整合到自己的應(yīng)用中去。

從算法層面思考,甚至?xí)O(shè)計(jì)一個(gè)新算法來(lái)支持模糊查找

這個(gè)層面大多是專(zhuān)業(yè)算法工程師的研究領(lǐng)域,想要設(shè)計(jì)一個(gè)有序的、非不可逆的、密文長(zhǎng)度不能增長(zhǎng)過(guò)快的算法不是一件簡(jiǎn)單的事情,大致的思路是這樣的,使用譯碼的方式進(jìn)行加解密,保留密文和原文一樣的順序,從而支持密文模糊匹配,說(shuō)的比較籠統(tǒng)因?yàn)槲乙膊皇沁@方面的專(zhuān)家沒(méi)有更深一步的研究過(guò),所以我從網(wǎng)上找了一些資料可以參考一下。

  • 數(shù)據(jù)庫(kù)中字符數(shù)據(jù)的模糊匹配加密方法:https://www.jiamisoft.com/blog/6542-zifushujumohupipeijiamifangfa.html

這里提到的Hill密碼處理和模糊匹配加密方法FMES可以重點(diǎn)看看.

  • 一種基于BloomFilter的改進(jìn)型加密文本模糊搜索機(jī)制研究:http://kzyjc.cnjournals.com/html/2019/1/20190112.htm

  • 支持快速查詢(xún)的數(shù)據(jù)庫(kù)如何加密:https://www.jiamisoft.com/blog/5961-kuaisuchaxunshujukujiami.html

  • 基于Lucene的云端搜索與密文基礎(chǔ)上的模糊查詢(xún):https://www.cnblogs.com/arthurqin/p/6307153.html

基于Lucene的思路就跟我們上面介紹的常規(guī)做法二類(lèi)似,對(duì)字符進(jìn)行等長(zhǎng)度分詞,將分詞后的結(jié)果集加密后存儲(chǔ),只不過(guò)存儲(chǔ)的db不一樣,一個(gè)是關(guān)系型數(shù)據(jù)庫(kù),一個(gè)是es搜索引擎。

  • 云存儲(chǔ)中一種支持可驗(yàn)證的模糊查詢(xún)加密方案:http://jeit.ie.ac.cn/fileDZYXXXB/journal/article/dzyxxxb/2017/7/PDF/160971.pdf

總結(jié)

我們到這里對(duì)加密數(shù)據(jù)的檢索方案全部介紹完了,我們首先提到的是網(wǎng)上搜索隨處可見(jiàn)的沙雕做法,在這里也講了不推薦使用這些沙雕做法,盡量使用常規(guī)做法,如果公司有專(zhuān)業(yè)算法方向人才的話(huà)不妨可以考慮基于算法層面的超神做法。

總的來(lái)說(shuō)從投入、產(chǎn)出比、及實(shí)現(xiàn)、使用成本來(lái)算的話(huà)常規(guī)做法二是非常推薦的。
審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7073

    瀏覽量

    89147
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4615

    瀏覽量

    93025
  • 加密
    +關(guān)注

    關(guān)注

    0

    文章

    304

    瀏覽量

    23941

原文標(biāo)題:被問(wèn)懵了,加密后的數(shù)據(jù)如何進(jìn)行模糊查詢(xún)?

文章出處:【微信號(hào):AndroidPush,微信公眾號(hào):Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    EMMC數(shù)據(jù)加密技術(shù)與應(yīng)用

    特點(diǎn),但同時(shí)也面臨著數(shù)據(jù)泄露的風(fēng)險(xiǎn)。 數(shù)據(jù)加密技術(shù)概述 數(shù)據(jù)加密技術(shù)是保護(hù)數(shù)據(jù)不被未授權(quán)訪(fǎng)問(wèn)的有
    的頭像 發(fā)表于 12-25 09:51 ?184次閱讀

    數(shù)據(jù)庫(kù)加密辦法

    ,當(dāng)我們聊到數(shù)據(jù)加密的時(shí)候,可以從這些角度入手來(lái)提高數(shù)據(jù)的安全性。 TDE手段 TDE也就是透明數(shù)據(jù)加密,是一種在
    的頭像 發(fā)表于 12-24 09:47 ?90次閱讀

    加密算法在云計(jì)算中如何應(yīng)用?

    /TLS協(xié)議,確保數(shù)據(jù)在客戶(hù)端和服務(wù)器之間安全傳輸。存儲(chǔ)加密技術(shù)如AES(高級(jí)加密標(biāo)準(zhǔn)),保護(hù)存儲(chǔ)在云端的數(shù)據(jù)不被未經(jīng)授權(quán)的用戶(hù)訪(fǎng)問(wèn)。 身份驗(yàn)證 : 通過(guò)對(duì)用戶(hù)
    的頭像 發(fā)表于 12-17 16:02 ?132次閱讀

    恒訊科技分析:云服務(wù)器數(shù)據(jù)加密具體是如何操作的?

    云服務(wù)器數(shù)據(jù)加密通常涉及以下幾個(gè)步驟和方法: 1、數(shù)據(jù)分類(lèi):首先需要對(duì)數(shù)據(jù)進(jìn)行分類(lèi),確定哪些數(shù)據(jù)
    的頭像 發(fā)表于 11-25 11:55 ?153次閱讀

    aes加密的常見(jiàn)錯(cuò)誤及解決方案

    AES(Advanced Encryption Standard,高級(jí)加密標(biāo)準(zhǔn))是一種對(duì)稱(chēng)加密算法,它使用固定長(zhǎng)度的密鑰對(duì)數(shù)據(jù)進(jìn)行加密。在使
    的頭像 發(fā)表于 11-14 15:13 ?1569次閱讀

    socket 加密通信的實(shí)現(xiàn)方式

    握手過(guò)程協(xié)商加密算法、生成會(huì)話(huà)密鑰。 數(shù)據(jù)傳輸: 使用協(xié)商的加密算法和會(huì)話(huà)密鑰對(duì)數(shù)據(jù)進(jìn)行加密和解
    的頭像 發(fā)表于 11-12 14:18 ?448次閱讀

    云存儲(chǔ)服務(wù)中的數(shù)據(jù)加密技術(shù)

    隨著云計(jì)算技術(shù)的快速發(fā)展,越來(lái)越多的企業(yè)和個(gè)人開(kāi)始將數(shù)據(jù)存儲(chǔ)在云平臺(tái)上。然而,數(shù)據(jù)安全問(wèn)題也隨之成為人們關(guān)注的焦點(diǎn)。為了保護(hù)數(shù)據(jù)的安全性和隱私性,云存儲(chǔ)服務(wù)提供商采用了多種數(shù)據(jù)
    的頭像 發(fā)表于 10-28 15:04 ?481次閱讀

    云安全服務(wù)加密存儲(chǔ)代碼怎么查

    云安全服務(wù)加密存儲(chǔ)代碼的查詢(xún)與實(shí)現(xiàn)是一個(gè)復(fù)雜的過(guò)程,涉及到多個(gè)方面,包括數(shù)據(jù)加密、密鑰管理、訪(fǎng)問(wèn)控制等。 1. 引言 隨著云計(jì)算的快速發(fā)展,越來(lái)越多的企業(yè)和個(gè)人將
    的頭像 發(fā)表于 07-02 09:28 ?373次閱讀

    ClickHouse內(nèi)幕(3)基于索引的查詢(xún)優(yōu)化

    ClickHouse索引采用唯一聚簇索引的方式,即Part內(nèi)數(shù)據(jù)按照order by keys有序,在整個(gè)查詢(xún)計(jì)劃中,如果算子能夠有效利用輸入數(shù)據(jù)的有序性,對(duì)算子的執(zhí)行性能將有巨大的提升。本文討論
    的頭像 發(fā)表于 06-11 10:46 ?1041次閱讀
    ClickHouse內(nèi)幕(3)基于索引的<b class='flag-5'>查詢(xún)</b>優(yōu)化

    ESP-IDF中能否加密應(yīng)用固件?

    描述:我啟動(dòng)了flahs加密,這樣物理上可以防止數(shù)據(jù)的讀取和篡改。但在進(jìn)行https-OTA時(shí),從服務(wù)器傳輸固件到設(shè)備的過(guò)程中,可能會(huì)泄露固件。正常使用ESP-IDF編譯生成的固件是明文,也就是沒(méi)有
    發(fā)表于 06-11 06:50

    ESP32對(duì)Flash加密能否使用OTA進(jìn)行后續(xù)的維護(hù)更新?

    ESP32對(duì)Flash加密能否使用OTA進(jìn)行后續(xù)的維護(hù)更新
    發(fā)表于 06-07 08:21

    esp32加密無(wú)法關(guān)閉怎么解決?

    ... .html#id19嘗試關(guān)閉加密功能時(shí),發(fā)現(xiàn)提示New value required for efuse,如圖顯示。 請(qǐng)教這是什么原因? 另外我發(fā)現(xiàn)加密,無(wú)法使用erase-flash 擦除flash,如圖
    發(fā)表于 06-06 06:48

    基于 FPGA 的光纖混沌加密系統(tǒng)

    作品應(yīng)用前景廣泛。例如,各級(jí)市政機(jī)關(guān)之間在通信時(shí),有些信息是需要嚴(yán)格加密的(如財(cái)務(wù)信息,公民戶(hù)籍隱私)。利用本設(shè)計(jì)進(jìn)行加密,即 便竊密者獲取到鏈路中的
    發(fā)表于 04-26 17:18

    如何對(duì)GD32 MCU進(jìn)行加密?

    GD32MCU有哪些加密方法呢?大家在平時(shí)項(xiàng)目開(kāi)發(fā)的過(guò)程中,最后都可能會(huì)面臨如何對(duì)出廠(chǎng)產(chǎn)品的MCU代碼進(jìn)行加密,避免產(chǎn)品流向市場(chǎng)被別人讀取復(fù)制。下面為大家介紹GD32MCU所支持的幾種常用的
    的頭像 發(fā)表于 01-20 09:30 ?1546次閱讀
    如何對(duì)GD32 MCU<b class='flag-5'>進(jìn)行</b><b class='flag-5'>加密</b>?

    應(yīng)用方案:實(shí)時(shí)數(shù)據(jù)加密

    圖像數(shù)據(jù)進(jìn)行了簡(jiǎn)單的CRC加密。如需對(duì)數(shù)據(jù)進(jìn)行加密,也可以利用CPLD實(shí)現(xiàn)對(duì)
    發(fā)表于 01-15 08:57
    主站蜘蛛池模板: h色小视频| 广东毛片| 日韩一级在线播放免费观看| 四虎影视永久地址| 四虎中文| 日本大片成人免费播放| 欧美午夜激情影院| 萌白酱香蕉白丝护士服喷浆| 九九99视频在线观看视频观看| 国产一区二区三区美女图片| www淫| 天天视频在线观看免费| 欧美黄色片网站| 丁香五月网久久综合| 视频h在线| 欧美成年性色mmm| 一级做a爱| 日本一区二区精品88| 老色99久久九九精品尤物| 国产精品怡红院永久免费| 夜夜操夜夜爽| 久久亚洲精品国产亚洲老地址| 亚洲人成在线精品不卡网| 亚洲狠狠狠一区二区三区| 一级做a爰片久久毛片一| 色色色色色色网| 九九全国免费视频| 亚洲dv| 成人窝窝午夜看片| 日本一区免费观看| 天堂网bt| 深夜影院一级毛片| 精品乱人伦一区二区三区| 免费高清成人啪啪网站| 国产精品一级香蕉一区| 色多视频| 国产caoni111在线观看视频| 天天艹夜夜艹| 69日本人xxxxxxxx18| 五月情视频在线观看| 久久亚洲一级毛片|