]作為一種實(shí)施例,在上述操作中,設(shè)定產(chǎn)生隨機(jī)數(shù)的范圍為0~255,而隨機(jī)數(shù)轉(zhuǎn)換為16進(jìn)制進(jìn)行后續(xù)加密過(guò)程的處理,在加密過(guò)程中,最終生成的加密字符串也轉(zhuǎn)換為16進(jìn)制的數(shù)據(jù)形式。
[0022]具體來(lái)說(shuō),如圖1和圖2所示,加密過(guò)稱為:
(1)將第一字符串中的每一個(gè)字符分別轉(zhuǎn)換為對(duì)應(yīng)的ASCII碼;
(2)密鑰字符串中的每一個(gè)字符分別轉(zhuǎn)換為對(duì)應(yīng)的ASCII碼;
(3)在0~255的范圍內(nèi)隨機(jī)產(chǎn)生一個(gè)用來(lái)加密的隨機(jī)數(shù)m;
(4)將第一字符串的第一個(gè)字符的ASCII碼與隨機(jī)數(shù)m相加,相加的數(shù)對(duì)255取余操作,獲取余數(shù)值,將余數(shù)值與密鑰字符串的第一個(gè)密鑰的ASC II碼進(jìn)行異或操作獲取異或值,完成對(duì)第一個(gè)字符串的第一個(gè)字符的加密;
(5)對(duì)第一字符串的第二個(gè)字符開(kāi)始的所有字符,每次均將前一個(gè)字符經(jīng)操作獲取的異或值作為當(dāng)前字符的隨機(jī)數(shù),進(jìn)行(4)中的操作,對(duì)第一個(gè)字符串的所有字符分別進(jìn)行加密,加密后輸出的字符經(jīng)過(guò)以下轉(zhuǎn)換輸出:
Format (,%1.2x,, [A]);
//控制符以%開(kāi)頭,小數(shù)點(diǎn)左邊的1是寬度(不足時(shí)用空格對(duì)齊),右邊 II的2是控制精度(未達(dá)到時(shí)用0補(bǔ)上),X是指將A按著十六進(jìn)制數(shù)輸出,
(6)將加密后的第一字符串的每個(gè)字符順序拼接形成第三字符串,第三字符串的第一個(gè)字符為初始在隨機(jī)數(shù)的范圍內(nèi)隨機(jī)產(chǎn)生的隨機(jī)數(shù)進(jìn)行以下轉(zhuǎn)換輸出:
Format (’ %1.2x,[B]) ;B 為隨機(jī)數(shù);
然后從第三個(gè)字符串的下一個(gè)字符開(kāi)始順序存儲(chǔ)第一字符串的每個(gè)加密后的字符。
[0023]而作為解密的方法,對(duì)接收的第三字符串形式的加密信息,按照加密時(shí)設(shè)定的規(guī)貝1J,以每?jī)蓚€(gè)字符為一個(gè)單元進(jìn)行字符串的拆分,將拆分的字符串中的第一個(gè)字符單元作為隨機(jī)數(shù)
然后解密的過(guò)程包括以下步驟:
(a)密鑰字符串中的每一個(gè)字符分別轉(zhuǎn)換為對(duì)應(yīng)的ASCII碼;
(b)獲取加密信息的第二個(gè)字符單元,與密鑰的第一個(gè)字符的ASCII碼進(jìn)行異或處理后,獲取異或值;
(c)對(duì)于獲取的異或值,如果異或值不大于隨機(jī)數(shù),則將獲取的則異或值與255相加后再減去隨機(jī)數(shù)得到余數(shù),如果異或值大于隨機(jī)數(shù),則將獲取的則異或值直接減去隨機(jī)數(shù)得到余數(shù);
(d)將余數(shù)對(duì)照ASCII碼返回其對(duì)應(yīng)的字符,得到第一字符串的第一個(gè)字符;
(e)對(duì)第三個(gè)字符單元的所有字符單元,每次均將前一個(gè)字符單元作為當(dāng)前字符單元的隨機(jī)數(shù),循環(huán)(c)~ (d)操作,獲取第一個(gè)字符串的所有加密字符相對(duì)應(yīng)的解密字符;
(f)將獲取的解密后的第一字符串的每個(gè)字符順序拼接形成原始的第一字符串。
[0024]同樣上述操作中,如果密鑰的長(zhǎng)度小于需要解密的第三字符串的長(zhǎng)度,那么在(c)中的異或過(guò)程中,當(dāng)異或到密鑰的最后一位時(shí),下一次異或從密鑰的第一位開(kāi)始再次進(jìn)行。
[0025]其中圖中的i和j都是整數(shù)。
【主權(quán)項(xiàng)】
1.一種信息加密方法,其特征在于: 首先初始化密鑰,初始化產(chǎn)生隨機(jī)數(shù)的范圍:n~(m-n+l), 原始信息對(duì)應(yīng)為第一字符串, (1)將第一字符串中的每一個(gè)字符分別轉(zhuǎn)換為對(duì)應(yīng)的ASCII碼; (2)密鑰字符串中的每一個(gè)字符分別轉(zhuǎn)換為對(duì)應(yīng)的ASCII碼; (3)在產(chǎn)生隨機(jī)數(shù)的范圍內(nèi)隨機(jī)產(chǎn)生一個(gè)用來(lái)加密的隨機(jī)數(shù); (4)將第一字符串的第一個(gè)字符的ASCII碼與隨機(jī)數(shù)相加,相加的數(shù)對(duì)(m-n+1)取余操作,獲取余數(shù)值,將余數(shù)值與密鑰字符串的第一個(gè)密鑰的ASC II碼進(jìn)行異或操作獲取異或值,完成對(duì)第一個(gè)字符串的第一個(gè)字符的加密; (5)對(duì)第一字符串的第二個(gè)字符開(kāi)始的所有字符,每次均將前一個(gè)字符經(jīng)操作獲取的異或值作為當(dāng)前字符的隨機(jī)數(shù),進(jìn)行(4)中的操作,對(duì)第一個(gè)字符串的所有字符分別進(jìn)行加密; (6)將加密后的第一字符串的每個(gè)字符順序拼接形成第三字符串,所述第三字符串的第一個(gè)字符為初始在隨機(jī)數(shù)的范圍內(nèi)隨機(jī)產(chǎn)生的隨機(jī)數(shù),從第三個(gè)字符串的第二個(gè)字符開(kāi)始順序存儲(chǔ)第一字符串的每個(gè)加密后的字符。2.根據(jù)權(quán)利要求1所述的信息加密方法,其特征在于:上述操作中,如果密鑰的長(zhǎng)度小于需要加密的字段的長(zhǎng)度,那么在(4)中的異或過(guò)程中,當(dāng)異或到密鑰的最后一位時(shí),下一次異或從密鑰的第一位開(kāi)始再次進(jìn)行。3.根據(jù)權(quán)利要求1所述的信息加密方法,其特征在于:所述產(chǎn)生隨機(jī)數(shù)的范圍為0-255 ο4.根據(jù)權(quán)利要求1所述的信息加密方法,其特征在于:所述組成密鑰的字符為字母、數(shù)學(xué)符號(hào)或數(shù)字。5.一種信息解密方法,其特征在于: 對(duì)接收的第三字符串形式的加密信息,以每設(shè)定個(gè)字符為一個(gè)單元進(jìn)行字符串的拆分,將拆分的字符串中的第一個(gè)字符作為隨機(jī)數(shù); (1)密鑰字符串中的每一個(gè)字符分別轉(zhuǎn)換為對(duì)應(yīng)的ASCII碼; (2)獲取加密信息的第二個(gè)字符單元,與密鑰的第一個(gè)字符的ASCII碼進(jìn)行異或處理后,獲取異或值; (3)對(duì)于獲取的異或值,如果異或值不大于隨機(jī)數(shù),則將獲取的異或值與(m-n+1)相加后再減去隨機(jī)數(shù)得到余數(shù),如果異或值大于隨機(jī)數(shù),則將獲取的則異或值直接減去隨機(jī)數(shù)得到余數(shù); (4)將余數(shù)對(duì)照ASCII碼返回其對(duì)應(yīng)的字符,得到第一字符串的第一個(gè)字符; (5)對(duì)第三字符串從第三個(gè)字符單元的所有字符單元,每次均將前一個(gè)字符單元作為當(dāng)前字符單元的隨機(jī)數(shù),循環(huán)(3) ~ (4)操作,獲取第一個(gè)字符串的所有加密字符相對(duì)應(yīng)的解密字符; (6)將獲取的解密后的第一字符串的每個(gè)字符順序拼接形成原始的第一字符串。6.根據(jù)權(quán)利要求5所述的信息解密方法,其特征在于:上述操作中,如果密鑰的長(zhǎng)度小于需要解密的第三字符串的長(zhǎng)度,那么在(3)中的異或過(guò)程中,當(dāng)異或到密鑰的最后一位時(shí),下一次異或從密鑰的第一位開(kāi)始再次進(jìn)行。7.根據(jù)權(quán)利要求5所述的信息解密方法,其特征在于:所述組成密鑰的字符為字母、數(shù)學(xué)符號(hào)或數(shù)字。
【專利摘要】一種信息加密和解密的方法,初始化密鑰,產(chǎn)生隨機(jī)數(shù)的范圍:n~(m-n+1),(1)將第一字符串中的每一個(gè)字符分別轉(zhuǎn)換為對(duì)應(yīng)的ASCⅡ碼;(2)密鑰字符串中的每一個(gè)字符分別轉(zhuǎn)換為對(duì)應(yīng)的ASCⅡ碼;(3)在產(chǎn)生隨機(jī)數(shù)的范圍內(nèi)隨機(jī)產(chǎn)生一個(gè)隨機(jī)數(shù);(4)將第一字符串的第一個(gè)字符的ASCⅡ碼與隨機(jī)數(shù)相加,相加的數(shù)對(duì)(m-n+1)取余操作,獲取余數(shù)值,將余數(shù)值與密鑰字符串的第一個(gè)密鑰的ASCⅡ碼進(jìn)行異或操作獲取異或值;(5)對(duì)第一字符串的第二個(gè)字符開(kāi)始的所有字符,每次均將前一個(gè)字符經(jīng)操作獲取的異或值作為當(dāng)前字符的隨機(jī)數(shù);(6)將加密后的第一字符串的每個(gè)字符順序拼接形成第三字符串。
【IPC分類】H04L9/00, H04L9/06
【公開(kāi)號(hào)】CN105406960
【申請(qǐng)?zhí)枴緾N201510954105
【發(fā)明人】雷亞歌, 尚會(huì)領(lǐng), 張斌
【申請(qǐng)人】河南思維自動(dòng)化設(shè)備股份有限公司
【公開(kāi)日】2016年3月16日
【申請(qǐng)日】2015年12月20日