[0060] 設(shè)定等長編碼的長度為10,對于步驟S103中生成的長字符串,若長字符串的長度超過了設(shè)定的等長編碼長度,對長字符串從頭開始進行截取,將截取長字符串的一部分用來生成等長編碼,根據(jù)編碼規(guī)則,為長字符串添加固定的前綴和表示屬性或分類的兩位字符(或數(shù)字),將根據(jù)編碼規(guī)則生成的長字符串輸入到哈希算法MD5中,將哈希值視為一個大整數(shù),并將其轉(zhuǎn)換為所需字符集的進制表示。例如,你可以將哈希值轉(zhuǎn)換為Base36表示(使用字母A?Z和數(shù)字0?9作為符號),然后取結(jié)果的前N個字符,將轉(zhuǎn)換后的序列截斷到剩余的六位,如果序列長度不足六位,從補償編碼庫中選擇補償編碼進行填充。
[0061] S107,將生成的長字符串及其對應(yīng)的等長編碼存儲在字典中,根據(jù)字典對敏感風(fēng)險數(shù)據(jù)序列進行加密和解密。
[0062] 構(gòu)建一個字典,用于存儲長字符串及其對應(yīng)的等長編碼,字典的鍵是長字符串,值是其對應(yīng)的等長編碼;加密過程是將敏感數(shù)據(jù)序列(可能是一個長字符串或一組長字符串)轉(zhuǎn)換為對應(yīng)的等長編碼序列,對于每個需要加密的長字符串,首先在字典中查找其對應(yīng)的等長編碼,如果找到了對應(yīng)的等長編碼,則將該長字符串替換為其等長編碼,將所有替換后的等長編碼按照原始順序組合起來,形成加密后的敏感數(shù)據(jù)序列;解密過程是將加密后的等長編碼序列轉(zhuǎn)換回原始的敏感數(shù)據(jù)序列,對于每個需要解密的等長編碼,首先在字典中查找其對應(yīng)的長字符串,如果找到了對應(yīng)的長字符串,則將該等長編碼替換為其對應(yīng)的長字符串,將所有替換后的長字符串按照原始順序組合起來,形成解密后的敏感風(fēng)險數(shù)據(jù)序列。
[0063] 上述本申請實施例中的技術(shù)方案,至少具有如下的技術(shù)效果或優(yōu)點:
[0064] 編碼后的文本由于采用了等長編碼和補償編碼,使得原始字符串的統(tǒng)計特征被隱匿,增加了破解的難度,補償編碼的隨機填充進一步提高了編碼的復(fù)雜性和不可預(yù)測性,使得攻擊者難以通過模式分析來還原原始字符串,通過定義明確的編碼規(guī)則和結(jié)構(gòu),可以實現(xiàn)對字符串的快速編碼和解碼,確保在處理大量數(shù)據(jù)時不會造成性能瓶頸。
[0065] 實施例二:基于實施例一中補償編碼對等長編碼進行簡單的填充,攻擊者可能會通過分析編碼后的文本發(fā)現(xiàn)其中的模式,從而增加破解的風(fēng)險,本實施例中在等長編碼的多個隨機位置處插入一個或多個字符。
[0066] 如圖2所示,等長編碼的隨機位置處插入字符的具體步驟為:
[0067] S201,基于步驟S106中生成的等長編碼,使用隨機數(shù)生成器選擇多個隨機位置;
[0068] 使用隨機數(shù)生成器,根據(jù)等長編碼的長度10,設(shè)置隨機數(shù)生成器的最大值和最小值,設(shè)置最小值為0,最大值為9,使用隨機數(shù)生成器生成5個隨機位置,通過設(shè)置隨機數(shù)的參數(shù),生成5個不重復(fù)的隨機位置,最后,將生成的隨機位置記錄下來,將生成的隨機位置存儲在位置列表中。
[0069] S202,根據(jù)選擇的隨機位置,從補償編碼庫中選取補償編碼,將選取補償編碼插入到等長編碼的隨機位置中;
[0070] 根據(jù)步驟S105中的補償編碼庫,從補償編碼庫中隨機選擇5個補償編碼,將選取的補償編碼插入到等長編碼的隨機位置中。
[0071] 一些實施例中,一組等長編碼ABCDEFGHIJ,選取的隨機位置[2,?5,?9],這些位置是基于S201步驟中隨機數(shù)生成器的結(jié)果,選取補償編碼X、Y、Z,X、Y、Z等補償編碼是從補償編碼庫中選取的,如果補償編碼的長度與等長編碼的字符長度不一致,需要進行截斷或填充操作以匹配長度,但在本例中,補償編碼與等長編碼的字符長度一致,根據(jù)選取的隨機位置,確定在等長編碼中插入補償編碼的具體位置,位置2代表在第三個字符之后(因為索引從0開始)插入補償編碼,將等長編碼分割為兩部分:插入點之前的部分和插入點之后的部分,在兩部分之間插入補償編碼,重新組合分割后的部分和插入的補償編碼,形成新的等長編碼片段,分割等長編碼AB(前兩部分)和CDEFGHIJ(后八部分),插入補償編碼X:ABX?+?CDEFGHIJ=?ABXDEFGHIJ新的等長編碼片段,但還不是最終結(jié)果,因為還有其他位置需要插入,重復(fù)上述過程,對于位置5和9的插入:對于位置5:ABXDEF(前六部分)和GHIJ(后四部分),插入Y:ABXDEFY+?GHIJ=ABXDEFYGHIJ;對于位置9(這是最后一個位置,直接在上一步的結(jié)果后添加即可,插入Z,所以直接變成ABXDEFYGHIZ,ABXDEFYGHI+Z=ABXDEFYGHIZ,直到所有選取的隨機位置都插入了補償編碼,在所有選取的隨機位置都插入補償編碼后,組合這些新的等長編碼片段,形成最終的等長編碼。
[0072] S203,對生成的等長編碼進行驗證,將編碼及其對應(yīng)的字符串、分配時間和有效期限記錄在數(shù)據(jù)庫中;