我正在處理人工編寫的文本文檔,並且我執行基於字典的字符串匹配以在文檔中查找特定的字符串。加密:字符串的散列與字符串的子字符串的散列相關聯
出於安全原因,我無法以未加密的文本格式輸入文檔,而是以強烈的加密格式輸入文檔。我不能讓在本機上工作的開發人員訪問未加密的輸入字符串,但他們可以訪問匹配的字符串。
這樣可以很清楚:
Dictionary = {"Apple", "Apple pie", "World War II"}
Document1 = "apple is my favorite fruit." -> Should match "apple"
Document2 = "apple pie was invented during world war II" -> Should match "apple pie" and "world war II"
所以匹配的字符串是不區分大小寫的,只有匹配最長的發生(我使用的阿霍Corasick)。
我看到的選項是:
查找的加密函數F,其中F( 「ABCD」)= F( 「A」)+ F( 「B」)+ F( 「C」) + F(「D」)= F(「AB」)+ F(「CD」)。
將文檔按空格分塊,散列塊和字典,然後查找相似性。 (複雜)
建立一個獨立的單元負責加密和字符串匹配與混淆代碼。 (最明顯的方式)
由於我不擅長密碼學,我可能會錯過這裏的東西。任何人都可以看到實現這一目標的更好方法?
文件加密時,我有點不清楚。它們在到達您的代碼之前是否已加密,或者您是否對它們進行加密?如果他們已經加密,你有鑰匙給他們嗎? – 2011-02-10 15:41:47
該文件來自客戶端,也在我們的控制之下。我們的目標是不讓任何未加密的信息離開客戶端機器,但在我們的服務器中執行此過程。 – parsa 2011-02-10 16:01:53