本發(fā)明涉及數(shù)據(jù)加解密領(lǐng)域,具體涉及一種可攜帶有效業(yè)務(wù)信息傳輸且固定長(zhǎng)度的數(shù)據(jù)加密方法。
背景技術(shù):
現(xiàn)有對(duì)業(yè)務(wù)數(shù)據(jù)加解密方法很多,主要分為對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密兩大類(lèi)。對(duì)稱(chēng)加密主要有aes、des、3des、tea等;非對(duì)稱(chēng)加密主要有:rsa、elgamal、背包算法、rabin、d-h、ecc(橢圓曲線加密算法)等。在一些需要生成固定長(zhǎng)度并攜帶有效業(yè)務(wù)信息的軟件通訊或數(shù)據(jù)加解密場(chǎng)景中,使用目前常用的加解密算法往往只能滿(mǎn)足加解密的要求,卻不能保證加密后得到一固定長(zhǎng)度的可讀字符串,以而不能滿(mǎn)足軟件通訊上對(duì)傳輸數(shù)據(jù)長(zhǎng)度限制的要求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種可攜帶有效業(yè)務(wù)信息傳輸且固定長(zhǎng)度的數(shù)據(jù)加密方法,解決目前的加解密算法不能滿(mǎn)足加密后得到固定長(zhǎng)度的可讀字符串的問(wèn)題。
為解決上述的技術(shù)問(wèn)題,本發(fā)明采用以下技術(shù)方案:
一種可攜帶有效業(yè)務(wù)信息傳輸且固定長(zhǎng)度的數(shù)據(jù)加密方法,包括以下步驟:
s1:構(gòu)造待加密的固定長(zhǎng)度的原字符串;
s2:將業(yè)務(wù)信息數(shù)據(jù)填充到原字符串的指定數(shù)據(jù)位中,得到業(yè)務(wù)信息字符串;
s3:按照位置打亂規(guī)則構(gòu)造位置交換碼表將業(yè)務(wù)信息字符串的各數(shù)據(jù)位的位置打亂;
s4:對(duì)位置打亂后的字符串進(jìn)行值倒置;
s5:按照進(jìn)制轉(zhuǎn)換規(guī)則對(duì)值倒置后的字符串進(jìn)行進(jìn)制轉(zhuǎn)換。
更進(jìn)一步的方案是,在步驟s2中的業(yè)務(wù)信息字符串中的指定數(shù)據(jù)位中加入時(shí)間戳或隨機(jī)碼。
更進(jìn)一步的方案是,步驟s5中所述的進(jìn)制轉(zhuǎn)換規(guī)則如下:
a:從62進(jìn)制基礎(chǔ)字典編碼表中取出n(n≥1)個(gè)字符,構(gòu)成(62-n)進(jìn)制基礎(chǔ)字典編碼表;
b:將62-n進(jìn)制基礎(chǔ)字典編碼表的順序打亂;
c:對(duì)步驟s4中值倒置后得到的字符串進(jìn)行10進(jìn)制轉(zhuǎn)62-n進(jìn)制轉(zhuǎn)換壓縮;
d:對(duì)轉(zhuǎn)換壓縮后的字符串進(jìn)行不足規(guī)定位數(shù)長(zhǎng)度進(jìn)行數(shù)據(jù)填充。
更進(jìn)一步的方案是,62進(jìn)制基礎(chǔ)字典編碼表范圍為:abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789。
更進(jìn)一步的方案是,進(jìn)制轉(zhuǎn)換規(guī)則中的步驟d中數(shù)據(jù)填充的字符為步驟a中從62進(jìn)制基礎(chǔ)字典編碼表中取出的n個(gè)字符中的一個(gè)或多個(gè)。
更進(jìn)一步的方案是,業(yè)務(wù)信息字符串為正整數(shù)數(shù)字。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
本發(fā)明的方法通過(guò)原串位置打亂、原串值倒置、特定進(jìn)制轉(zhuǎn)換壓縮、特定填充字符處理手段實(shí)現(xiàn)對(duì)原串?dāng)?shù)據(jù)的加密保護(hù)并壓縮為特定長(zhǎng)度。在實(shí)際使用和測(cè)試,效果明顯。
本發(fā)明的方法能解決現(xiàn)有流行的加解密算法不能對(duì)原串進(jìn)行加密后生成特定長(zhǎng)度的問(wèn)題,本方法是在加解密雙加共享加解密規(guī)則和規(guī)則碼表,且可通過(guò)各種方式實(shí)現(xiàn)規(guī)則碼表的動(dòng)態(tài)更新,以增加破解難度。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
具體實(shí)施例(以加密后字符串長(zhǎng)度為32位為例):
一種可攜帶有效業(yè)務(wù)信息傳輸且固定長(zhǎng)度的數(shù)據(jù)加密方法,包括以下步驟:
s1:構(gòu)造待加密固定長(zhǎng)度的原字符串;如果加密后字符串的長(zhǎng)度要求為32位,進(jìn)制轉(zhuǎn)換為10進(jìn)制轉(zhuǎn)61進(jìn)制,則最終原字符串的最大長(zhǎng)度不能超過(guò)57位,才能夠保證加密后的字符串的長(zhǎng)度為32位;構(gòu)造原字符串時(shí)需要預(yù)先設(shè)定業(yè)務(wù)信息存儲(chǔ)位、時(shí)間戳和隨機(jī)碼的存儲(chǔ)位,例如下表1中為原字符串:
表1原字符串
s2:將業(yè)務(wù)信息數(shù)據(jù)填充到原字符串的指定數(shù)據(jù)位中,得到業(yè)務(wù)信息字符串;以業(yè)務(wù)信息為11位手機(jī)號(hào)碼18530497623為例填充到指定數(shù)據(jù)位中,并填充時(shí)間戳和隨機(jī)碼,構(gòu)造業(yè)務(wù)信息字符串如表2。業(yè)務(wù)信息字符串為正整數(shù)數(shù)字,正整數(shù)數(shù)字方便后續(xù)步驟中進(jìn)制轉(zhuǎn)換。
表2業(yè)務(wù)信息字符串位置
s3:按照位置打亂規(guī)則構(gòu)造位置交換碼表將業(yè)務(wù)信息字符串的各數(shù)據(jù)位的位置打亂;將業(yè)務(wù)信息各數(shù)據(jù)位的位置打亂,打亂后的字符串位置和原位置對(duì)應(yīng)的數(shù)據(jù)表如表3。
表3位置打亂后的字符串位置和原位置的位置交換碼表
s4:對(duì)位置打亂后的字符串進(jìn)行值倒置;本步驟中是將位置打亂后的字符串的各數(shù)據(jù)位重新填充新值,值倒置后的字符串如表4。
表4位置打亂后進(jìn)行值倒置后的字符串位置表
s5:按照進(jìn)制轉(zhuǎn)換規(guī)則對(duì)值倒置后的字符串進(jìn)行進(jìn)制轉(zhuǎn)換。根據(jù)下述的規(guī)則對(duì)值倒置后的字符串進(jìn)行進(jìn)制轉(zhuǎn)換,滿(mǎn)足固定長(zhǎng)度加密字符串的要求。
進(jìn)制轉(zhuǎn)換規(guī)則如下:
a:從62進(jìn)制基礎(chǔ)字典編碼表中取出n(n≥1)個(gè)字符,構(gòu)成(62-n)進(jìn)制基礎(chǔ)字典編碼表;
b:將62-n進(jìn)制基礎(chǔ)字典編碼表的順序打亂;
c:對(duì)步驟s3中值倒置后得到的字符串進(jìn)行10進(jìn)制轉(zhuǎn)62-n進(jìn)制轉(zhuǎn)換壓縮;
d:對(duì)轉(zhuǎn)換壓縮后的字符串進(jìn)行不足規(guī)定位數(shù)長(zhǎng)度進(jìn)行數(shù)據(jù)填充。數(shù)據(jù)填充的字符為步驟a中從62進(jìn)制基礎(chǔ)字典編碼表中取出的n個(gè)字符中的一個(gè)或多個(gè)。
其中,62進(jìn)制基礎(chǔ)字典編碼表范圍為:
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789。
在數(shù)據(jù)加密之后,必然會(huì)涉及到數(shù)據(jù)解密,數(shù)據(jù)解密只需要按照共享的基本規(guī)則倒序進(jìn)行處理,即針對(duì)本發(fā)明中的加密方法,其解密步驟為:
s1:對(duì)待解密的字符串由62-n進(jìn)制轉(zhuǎn)換為10進(jìn)制得到字符串1;
s2:對(duì)字符串1對(duì)應(yīng)的數(shù)據(jù)位表和加密時(shí)構(gòu)造的位置交換碼表結(jié)合得到原業(yè)務(wù)信息字符串表;從而可在原業(yè)務(wù)信息字符串表中找到對(duì)應(yīng)的業(yè)務(wù)信息。
本發(fā)明的方法通過(guò)原串位置打亂、原串值倒置、特定進(jìn)制轉(zhuǎn)換壓縮、特定填充字符處理手段實(shí)現(xiàn)對(duì)原串?dāng)?shù)據(jù)的加密保護(hù)并壓縮為特定長(zhǎng)度。在實(shí)際使用和測(cè)試,效果明顯。
本發(fā)明的方法能解決現(xiàn)有流行的加解密算法不能對(duì)原串進(jìn)行加密后生成特定長(zhǎng)度的問(wèn)題,本方法是在加解密雙加共享加解密規(guī)則和規(guī)則碼表,且可通過(guò)各種方式實(shí)現(xiàn)規(guī)則碼表的動(dòng)態(tài)更新,以增加破解難度。
盡管這里參照本發(fā)明的多個(gè)解釋性實(shí)施例對(duì)本發(fā)明進(jìn)行了描述,但是,應(yīng)該理解,本領(lǐng)域技術(shù)人員可以設(shè)計(jì)出很多其他的修改和實(shí)施方式,這些修改和實(shí)施方式將落在本申請(qǐng)公開(kāi)的原則范圍和精神之內(nèi)。更具體地說(shuō),在本申請(qǐng)公開(kāi)和權(quán)利要求的范圍內(nèi),可以對(duì)主題組合布局的組成部件和/或布局進(jìn)行多種變型和改進(jìn)。除了對(duì)組成部件和/或布局進(jìn)行的變形和改進(jìn)外,對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),其他的用途也將是明顯的。