一種基于md5的加密方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)加密領(lǐng)域,尤其涉及一種基于MD5的加密方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)通信技術(shù)的不斷發(fā)展,信息安全越來越重要。于數(shù)據(jù)信息傳輸時,為了保證安全性,通常會采用加密算法對數(shù)據(jù)信息進(jìn)行加密處理。但是,現(xiàn)有的標(biāo)準(zhǔn)開源加密算法由于算法機(jī)制完全透明,算法資料全面,很容易被暴力破解。
【發(fā)明內(nèi)容】
[0003]本發(fā)明提供一種基于MD5的加密方法及系統(tǒng),能夠解決由于現(xiàn)有技術(shù)中標(biāo)準(zhǔn)開源算法容易被惡意破解而造成信息安全性不高的問題。
[0004]為了解決上述技術(shù)問題,本發(fā)明提供一種基于MD5的加密方法,包括以下步驟:獲取原始待加密數(shù)據(jù),添加動態(tài)數(shù)據(jù);根據(jù)預(yù)定的動態(tài)加密規(guī)則對添加動態(tài)數(shù)據(jù)的原始待加密數(shù)據(jù)進(jìn)行加密運算,得到第一加密數(shù)據(jù),其中,所述動態(tài)加密規(guī)則包括加密算法、加密次數(shù)及加密算法執(zhí)行順序;根據(jù)調(diào)整后的鏈接變量對所述第一加密數(shù)據(jù)進(jìn)行MD5運算,得到第二加密數(shù)據(jù);將動態(tài)信息加入所述第二加密數(shù)據(jù)得到第三加密數(shù)據(jù),將所述第三加密數(shù)據(jù)轉(zhuǎn)換為可見字符,得到加密結(jié)果,其中,所述動態(tài)信息包括動態(tài)數(shù)據(jù)的信息、動態(tài)加密規(guī)則的信息以及所述調(diào)整后的鏈接變量的信息。
[0005]進(jìn)一步地,所述動態(tài)數(shù)據(jù)由隨機(jī)函數(shù)生成。
[0006]進(jìn)一步地,所述第三加密數(shù)據(jù)包括所述動態(tài)信息在所述第三加密數(shù)據(jù)中的位置信息。
[0007]進(jìn)一步地,所述動態(tài)加密規(guī)則的加密算法包括以下一種算法或其任意組合:AES算法、SHAl算法、RipeMD算法、Tiger算法、WhirlPool算法。
[0008]本發(fā)明還提供一種基于MD5的加密系統(tǒng),包括:數(shù)據(jù)獲取模塊、第一加密模塊、第二加密模塊以及第三加密模塊。所述數(shù)據(jù)獲取模塊,用于獲取原始待加密數(shù)據(jù),添加動態(tài)數(shù)據(jù);所述第一加密模塊,用于根據(jù)預(yù)定的動態(tài)加密規(guī)則對添加動態(tài)數(shù)據(jù)的原始待加密數(shù)據(jù)進(jìn)行加密運算,得到第一加密數(shù)據(jù),其中,所述動態(tài)加密規(guī)則包括加密算法、加密次數(shù)及加密算法執(zhí)行順序;所述第二加密模塊,用于根據(jù)調(diào)整后的鏈接變量對所述第一加密數(shù)據(jù)進(jìn)行MD5運算,得到第二加密數(shù)據(jù);所述第三加密模塊,用于將動態(tài)信息加入所述第二加密數(shù)據(jù)得到第三加密數(shù)據(jù),將所述第三加密數(shù)據(jù)轉(zhuǎn)換為可見字符,得到加密結(jié)果,其中,所述動態(tài)信息包括動態(tài)數(shù)據(jù)的信息、動態(tài)加密規(guī)則的信息以及所述調(diào)整后的鏈接變量的信息。
[0009]進(jìn)一步地,所述動態(tài)數(shù)據(jù)由隨機(jī)函數(shù)生成。
[0010]進(jìn)一步地,所述第三加密數(shù)據(jù)包括所述動態(tài)信息在所述第三加密數(shù)據(jù)中的位置信息。
[0011]進(jìn)一步地,所述動態(tài)加密規(guī)則的加密算法包括以下一種算法或其任意組合:AES算法、SHAl算法、RipeMD算法、Tiger算法、WhirlPool算法。
[0012]本發(fā)明提供的基于MD5的加密方法及系統(tǒng),采用了多種加密算法混合,加密次數(shù)動態(tài)計算,動態(tài)信息分散在加密串各位置,能夠解決現(xiàn)有技術(shù)中標(biāo)準(zhǔn)開源算法容易被破解的問題,可以滿足高安全性要求的業(yè)務(wù)需求。
【附圖說明】
[0013]圖1所示為本發(fā)明較佳實施例提供的基于MD5的加密方法的流程圖;
[0014]圖2所示為本發(fā)明較佳實施例提供的基于MD5的加密系統(tǒng)的示意圖。
【具體實施方式】
[0015]如圖1所示,本發(fā)明較佳實施例提供的基于MD5的加密方法包括以下步驟:步驟S1:獲取原始待加密數(shù)據(jù),添加動態(tài)數(shù)據(jù);步驟S2:根據(jù)預(yù)定的動態(tài)加密規(guī)則對添加動態(tài)數(shù)據(jù)的原始待加密數(shù)據(jù)進(jìn)行加密運算,得到第一加密數(shù)據(jù),其中,所述動態(tài)加密規(guī)則包括加密算法、加密次數(shù)及加密算法執(zhí)行順序;步驟S3:根據(jù)調(diào)整后的鏈接變量對所述第一加密數(shù)據(jù)進(jìn)行MD5運算,得到第二加密數(shù)據(jù);步驟S4:將動態(tài)信息加入所述第二加密數(shù)據(jù)得到第三加密數(shù)據(jù),將所述第三加密數(shù)據(jù)轉(zhuǎn)換為可見字符,得到加密結(jié)果,其中,所述動態(tài)信息包括動態(tài)數(shù)據(jù)的信息、動態(tài)加密規(guī)則的信息以及所述調(diào)整后的鏈接變量的信息。
[0016]于較佳實施例中,動態(tài)數(shù)據(jù)由隨機(jī)函數(shù)生成。
[0017]于較佳實施例中,第三加密數(shù)據(jù)包括動態(tài)信息在第三加密數(shù)據(jù)中的位置信息。
[0018]于較佳實施例中,動態(tài)加密規(guī)則的加密算法包括以下一種算法或其任意組合:AES算法、SHAl算法、RipeMD算法、Tiger算法、WhirlPool算法。
[0019]接下來對本發(fā)明較佳實施例的流程進(jìn)行詳細(xì)描述。
[0020]舉例而言,當(dāng)本實施例的加密方法應(yīng)用于手機(jī)游戲支付業(yè)務(wù)時,步驟SI獲取的原始待加密數(shù)據(jù)例如為用戶輸入的需要加密的支付信息。同時,添加動態(tài)數(shù)據(jù)至原始待加密數(shù)據(jù)。其中,動態(tài)數(shù)據(jù)由隨機(jī)函數(shù)生成,并具有指定格式,例如100?300之間的數(shù)字、30位的字節(jié)數(shù)組或規(guī)定每個字節(jié)為O?120的字節(jié)數(shù)組。
[0021]步驟S2中的動態(tài)加密規(guī)則為預(yù)定義的。舉例而言,加密算法例如為AES算法和SHAl算法;加密次數(shù)例如為AES算法運算I次,SHAl算法運算2次;加密算法執(zhí)行順序例如為先進(jìn)行AES算法運算,再進(jìn)行SHAl算法運算。其中,可預(yù)先定義多種動態(tài)加密規(guī)則,于使用時,通過隨機(jī)函數(shù)確定相應(yīng)的動態(tài)加密規(guī)則。
[0022]在步驟S3中,對第一加密數(shù)據(jù)進(jìn)行的MD5運算為非公MD5運算。即,以調(diào)整后的鏈接變量進(jìn)行MD5運算。具體而言,標(biāo)準(zhǔn)的MD5運算有四個32位被稱作鏈接變量(ChainingVariable)的整數(shù)參數(shù),他們從小到大依次為:A = 0x01234567,B = 0x89abcdef, C =0xfedcba98,D = 0x76543210。改變這四個鏈接變量的值進(jìn)行運算,可使得運算結(jié)果與標(biāo)準(zhǔn)算法的結(jié)果不同。但是,若隨意修改鏈接變量,容易出現(xiàn)不同字符串加密結(jié)果碰撞增加的情況(即,不同字符串的加密結(jié)果相同)。因此,于本實施例中,鏈接變量的修改值經(jīng)過大數(shù)據(jù)碰撞測試得到,即將不同的鏈接變量修改值基于大規(guī)模的數(shù)據(jù)進(jìn)行加密結(jié)果檢測,根據(jù)加密結(jié)果的碰撞情況確定該鏈接變量修改值是否合適。于此,將經(jīng)過大數(shù)據(jù)碰撞測試的鏈接變量修改值放入鏈接變量集合,于使用時,根據(jù)所需的范圍區(qū)間,動態(tài)地從鏈接變量集合中取出合適的調(diào)整后的鏈接變量進(jìn)行MD5運算。
[0023]在步驟S4中,將動態(tài)信息加入由步驟S3的MD5運算得到的第二加密數(shù)據(jù)中。其中,經(jīng)過MD5運算得到的第二加密數(shù)據(jù)為128位散列值。具體而言,通過隨機(jī)函數(shù)生成動態(tài)信息的位置信息,動態(tài)信息根據(jù)位置信息分布在整個MD5的128位散列的各個位置,使其擴(kuò)展到152?168位,例如可以偽裝成SHAl運算結(jié)果的160位數(shù)?;?