明一個實施例中加密方的另一種結(jié)構(gòu)示意圖。
[0054]圖6是本發(fā)明一個實施例中解密方的結(jié)構(gòu)示意圖。
【具體實施方式】
[0055]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0056]本發(fā)明一個實施例提出了一種信息加密方法,參見圖1,包括:
[0057]步驟101:確定原始信息對應(yīng)的第一字符串。
[0058]步驟102:將第一字符串中每一個字符分別轉(zhuǎn)換為該字符對應(yīng)的ASCII碼,得到第二字符串。
[0059]步驟103:對第二字符串中的每一個ASCII碼分別進(jìn)行質(zhì)數(shù)求商處理。
[0060]步驟104:將質(zhì)數(shù)求商的結(jié)果及對應(yīng)的質(zhì)數(shù)替換第二字符串中對應(yīng)的ASCII碼,得到第三字符串形式的加密后的信息。
[0061]在本發(fā)明一個實施例中,對于待加密的原始信息,為了提高加密的安全性,還可以進(jìn)一步首先利用預(yù)先設(shè)置的第一公鑰對字符串形式的原始信息進(jìn)行加密,從而得到第一字符串,也就是說,所述原始信息對應(yīng)的第一字符串為:利用預(yù)先設(shè)置的第一公鑰對原始字符串進(jìn)行加密后的字符串。
[0062]在本發(fā)明一個實施例中,步驟103中,所述對第二字符串中的每一個ASCII碼分別進(jìn)行質(zhì)數(shù)求商處理可以包括:
[0063]針對所述每一個ASCII碼,按照質(zhì)數(shù)從小到大的順序逐一執(zhí)行將該ASCII碼除以大于自然數(shù)I的質(zhì)數(shù),直到得到第一個整除的商;
[0064]所述質(zhì)數(shù)求商的結(jié)果包括:所述第一個整除的商;
[0065]所述質(zhì)數(shù)求商的結(jié)果對應(yīng)的質(zhì)數(shù)包括:得到所述第一個整除的商時,作為當(dāng)前除數(shù)的質(zhì)數(shù)。
[0066]當(dāng)然,在本發(fā)明的其他實施例中,也可以采用其他的方式執(zhí)行步驟103中的質(zhì)數(shù)求商處理。比如,將得到的第二個整除的商而不是第一個整除的商,作為質(zhì)數(shù)求商的結(jié)果,同時,在得到所述第二個整除的商時,將當(dāng)前除數(shù)的質(zhì)數(shù)作為所述質(zhì)數(shù)求商的結(jié)果對應(yīng)的質(zhì)數(shù)等。
[0067]在本發(fā)明一個實施例中,為了進(jìn)一步提高信息的安全性,在步驟102所述將第一字符串中每一個字符分別轉(zhuǎn)換為該字符對應(yīng)的ASCII碼之前,可以進(jìn)一步進(jìn)行字符替換處理,包括:確定M個替換位置;將第一字符串中所述確定的M個替換位置上的原始字符分別替換為所述預(yù)設(shè)的M個替換字符;并將M個所述原始字符加入字符替換后的字符串的末尾,得到修正后的第一字符串;
[0068]則,步驟102中所述將第一字符串中每一個字符分別轉(zhuǎn)換為該字符對應(yīng)的ASCII碼包括:將修正后的第一字符串中每一個字符分別轉(zhuǎn)換為該字符對應(yīng)的ASCII碼。
[0069]在本發(fā)明一個實施例中,所述確定M個替換位置包括:
[0070]根據(jù)所述預(yù)設(shè)的M個替換字符,分別確定該M個替換字符對應(yīng)的M個ASCII碼,根據(jù)該M個ASCII碼確定所述M個替換位置。
[0071]本發(fā)明一個實施例還提出了一種信息解密方法,參見圖2,包括:
[0072]步驟201:對于接收的第三字符串形式的加密后的信息,以每設(shè)定個字符為一個單位拆分所述第三字符串。
[0073]步驟202:將拆分出的每個單位進(jìn)行質(zhì)數(shù)求商逆處理,得到每個單位對應(yīng)的ASCII碼。
[0074]步驟203:用每個單位對應(yīng)的ASCII碼替換第三字符串中的每個單位,得到第二字符串。
[0075]步驟204:將第二字符串中每個ASCII碼轉(zhuǎn)換為對應(yīng)的字符,得到第一字符串對應(yīng)的原始信息。
[0076]在本發(fā)明一個實施例中,步驟204在所述將第二字符串中每個ASCII碼轉(zhuǎn)換為對應(yīng)的字符后,得到預(yù)先利用第一公鑰加密后的第一字符串;則所述得到第一字符串對應(yīng)的原始信息包括:利用預(yù)先設(shè)置的對應(yīng)于第一公鑰的第一私鑰對第一字符串進(jìn)行解密,得到字符串形式的原始信息。
[0077]在本發(fā)明一個實施例中,步驟201中,所述設(shè)定個字符為三個字符;
[0078]在本發(fā)明一個實施例中,步驟202中,所述將拆分出的每個單位進(jìn)行質(zhì)數(shù)求商逆處理包括:
[0079]將拆分出的每個單位中前兩個字符串轉(zhuǎn)換成數(shù)字與第三個字符串轉(zhuǎn)換成的數(shù)字求乘積。
[0080]在本發(fā)明一個實施例中,步驟204中,在所述將第二字符串中每個ASCII碼轉(zhuǎn)換為對應(yīng)的字符之后,并在所述得到第一字符串對應(yīng)的原始信息之前,進(jìn)一步可以執(zhí)行字符替換逆處理,包括:
[0081]對于將第二字符串中每個ASCII碼轉(zhuǎn)換為對應(yīng)的字符之后得到的修正后的第一字符串,將該修正后的第一字符串中預(yù)設(shè)M個位置上的字符分別對應(yīng)替換為修正后的第一字符串中最后M位字符,并刪除該最后M位字符,得到第一字符串。
[0082]下面結(jié)合加密方和解密方的配合處理流程,并使用雙重加密方式(密鑰加密以及基于ASCII碼的加密)為例,來說明本發(fā)明實施例中對信息進(jìn)行加解密的過程,參見圖3,包括:
[0083]步驟301:預(yù)先生成公私鑰對,將其中第一公鑰保存在加密方中,以及將對應(yīng)于第一公鑰的第一私鑰保存在解密方中。
[0084]步驟302:預(yù)先設(shè)置M個替換字符,以及M個替換位置,其中,M為正整數(shù)。
[0085]比如,預(yù)先設(shè)置的M個替換字符為6個字母,分別為1、N、S、P、U、R0
[0086]M個替換位置可以是預(yù)先設(shè)定的固定位置,比如字符串中的第1、3、5、7、9、11個位置。
[0087]優(yōu)選地,M個替換位置還可以是根據(jù)替換字符確定的,比如,根據(jù)所述預(yù)設(shè)的6個替換字符,分別確定該6個替換字符對應(yīng)的6個ASCII碼,將該6個ASCII碼的值確定為所述M個替換位置。
[0088]步驟303:加密方針對當(dāng)前待加密的原始信息,確定該原始信息對應(yīng)的第一字符串O
[0089]這里,待加密的原始信息可以就是字符串形式,比如視頻流,在互聯(lián)網(wǎng)中傳輸?shù)母鞣N請求數(shù)據(jù)。
[0090]當(dāng)然,待加密的原始信息也可以不是字符串形式,此時,在本步驟中,可以按照預(yù)先設(shè)定的規(guī)則,將非字符串形式的原始信息轉(zhuǎn)換為字符串形式,從而執(zhí)行后續(xù)處理。
[0091]另外,在本步驟中,為了進(jìn)一步提高加密安全性,還可以對當(dāng)前待加密的原始信息首先利用預(yù)先設(shè)置的第一公鑰進(jìn)行加密,加密后得到的字符串為第一字符串。
[0092]接下來執(zhí)行步驟304至步驟305的基于字符替換的處理。
[0093]步驟304:加密方將第一字符串中預(yù)設(shè)M個位置上的原始字符分別替換為M個替換字符。
[0094]步驟305:加密方將M個被替換的所述原始字符加入字符替換后的字符串的末尾,得到修正后的第一字符串。
[0095]結(jié)合上述步驟302的例子,步驟304和步驟305中,所述的M個替換字符為預(yù)置的一個六位長度的字符串,全部由大寫字母構(gòu)成:INSPUR。對這六個字母INSPUR對應(yīng)的十進(jìn)制ASCII進(jìn)行獲取,得到73,78,83,80,85,82六個數(shù)字。因此,將第一字符串中的第73,78,83,80,85,82位置上的原始字符(比如為0PQRST)分別替換為I,N,S,P,U,R ;并且,將原始字符OPQRST加入字符串的末尾。
[0096]比如,第一字符串包括:AB…O…U。那么,本步驟得到的修正后的第一字符串包括:
[0097]AB…1...N…S...P...U...R...U0PQRST。
[0098]步驟306:加密方將修改正后的第一字符串中每一個字符分別轉(zhuǎn)換為該字符對應(yīng)的ASCII碼,得到第二字符串。
[0099]比如,修正后的第一字符串包括:AB…Ι...Ν...3...Ρ...υ...Κ...υθΡ0Ι?Τ。則將其中的A轉(zhuǎn)換為其對應(yīng)的ASCII碼65,將其中的B轉(zhuǎn)換