本發明涉及數據加密領域,特別是涉及一種數據加密方法及裝置。
背景技術:
伴隨著信息社會的飛速發展以及大數據時代的到來,數據的安全越來越受人們重視,并且也在經受著多方面的安全威脅。
用戶在日常使用中所傳輸以及儲存的數據往往都是明文的形式,這就可能導致保存在磁盤或網絡上的數據以及經過郵件等方式傳輸的數據在被竊取后,不法分子能夠直接獲取到明文內容的后果,因此采用明文進行傳輸數據的方式對于數據的安全性威脅過高。由此可見,對數據進行加密是提高數據安全的有效方法,但是由于現有的數據加密的方法沒有在加密時效上進行約束,這就給了不法分子充足的破解時間,這相對降低了加密數據的安全性。
由此可見,提供一種數據加密方法以改善加密后數據沒有時效性約束的缺點,提高數據在存儲和傳輸時的安全性,是本領域技術人員亟待解決的問題。
技術實現要素:
本發明的目的是提供一種數據加密方法及裝置,提高了加密后數據的安全性與可靠性。
為解決上述技術問題,本發明提供一種數據加密方法,包括:
獲取至少包括有時效參數的密鑰參數,通過將密鑰參數相結合生成加密密鑰;
接收原始數據,通過加密密鑰對原始數據進行加密,以得到加密數據;
其中,在對加密數據進行解密時,如果當前時刻超出時效參數的范圍,則解密失敗。
優選的,通過加密密鑰對原始數據進行加密具體包括:
確定原始數據內的字符的位置,并對位置進行編號;
將編號作為加密參數,并通過加密密鑰分別對原始數據內的各字符進行加密。
優選的,密鑰參數還包括:
用戶賬號及用戶魔數。
優選的,將密鑰參數相結合生成加密密鑰具體為:
將用戶賬號與用戶魔數進行組合生成安全賬號;
將安全賬號、時效參數及用戶魔數進行混合運算生成加密密鑰。
優選的,在得到加密數據后,該方法進一步包括:
將加密數據編譯為二進制序列。
優選的,在將加密數據編譯為二進制序列后,該方法進一步包括:
將時效參數編譯為二進制序列,并作為加密數據的首部。
優選的,二進制序列具體為32位的二制序列。
此外,本發明還提供一種數據加密裝置,包括:
密鑰生成模塊,用于獲取至少包括有時效參數的密鑰參數,通過將密鑰參數相結合生成加密密鑰;
數據加密模塊,用于接收原始數據,通過加密密鑰對原始數據進行加密,以得到加密數據;
其中,在對加密數據進行解密時,如果當前時刻超出時效參數的范圍,則解密失敗。
優選的,數據加密模塊具體包括:
編號子模塊,用于確定原始數據內的字符的位置,并對位置進行編號;
加密子模塊,用于將編號作為加密參數,并通過加密密鑰分別對原始數據內的各字符進行加密。
優選的,密鑰參數還包括:
用戶賬號及用戶魔數。
本發明所提供的數據加密方法,將時效參數作為密鑰參數之一進行加密密鑰的生成,并通過加密密鑰對原始數據進行加密得到加密數據。由于加密密鑰中具有時效參數,所以通過加密密鑰進行加密后的加密數據也具有了時效上的約束。當通過加密密鑰對加密數據進行解密時,首先判斷當前時刻是否在時效參數的范圍內,如果當前時刻已經超出了時效參數范圍,即使加密密鑰正確,也無法對加密數據進行解密。因此,本方法縮短了破解者可對加密數據進行破解的時間,進而增加了對數據的破解難度,進而提高了加密后數據的安全性與可靠性。此外,本發明還提供一種數據加密裝置,有益效果如上所述。
附圖說明
為了更清楚地說明本發明實施例,下面將對實施例中所需要使用的附圖做簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的一種數據加密方法的流程圖;
圖2為本發明實施例提供的另一種數據加密方法的流程圖;
圖3為本發明實施例提供的一種數據加密裝置結構圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下,所獲得的所有其他實施例,都屬于本發明保護范圍。
本發明的核心是提供一種數據加密方法,縮短了破解者可對加密數據進行破解的時間,進而提高了加密后數據的安全性與可靠性。
為了使本技術領域的人員更好地理解本發明方案,下面結合附圖和具體實施方式對本發明作進一步的詳細說明。
實施例一
圖1為本發明實施例提供的一種數據加密方法的流程圖。請參考圖1,數據加密方法的具體步驟包括:
步驟s10:獲取至少包括有時效參數的密鑰參數,通過將密鑰參數相結合生成加密密鑰。
可以理解的是,由于本發明所提供的方法對于加密的數據在時效上有一定的約束,因此在用于組成加密密鑰的密鑰參數中應該具有時效參數,進而使用加密密鑰對數據進行加密時才可以將數據與解密的有效時間相關聯。需要說明的是,所謂的時效參數,是用來表示加密數據能夠被解密的規定期限范圍的參數,時效參數根據加密者的需求而定,在此不做限定,但應能體現加密數據的有效時間區間或有效期截止時刻,可以為系統當前時刻與加密時長相加所得的數值等。
步驟s11:接收原始數據,通過加密密鑰對原始數據進行加密,以得到加密數據。
其中,在對加密數據進行解密時,如果當前時刻超出時效參數的范圍,則解密失敗。例如,在對數據進行加密時所設定的時效參數為2000年1月1日,那么則說明時效參數的范圍是在2000年1月1日之前,如果對加密數據進行解密的時刻在2000年1月1日之后,則解密失敗。由于加密密鑰中具有時效參數,因此經過加密密鑰進行加密的原始數據,均具有時效性。
本實施例提供的數據加密方法,將時效參數作為密鑰參數之一進行加密密鑰的生成,并通過加密密鑰對原始數據進行加密得到加密數據。由于加密密鑰中具有時效參數,所以通過加密密鑰進行加密后的加密數據也具有了時效上的約束。當通過加密密鑰對加密數據進行解密時,首先判斷當前時刻是否在時效參數的范圍內,如果當前時刻已經超出了時效參數范圍,即使加密密鑰正確,也無法對加密數據進行解密。因此,本方法縮短了破解者可對加密數據進行破解的時間,進而增加了對數據的破解難度,進而提高了加密后數據的安全性與可靠性。
實施例二
圖2為本發明實施例提供的另一種數據加密方法的流程圖。圖2中步驟s10與圖1相同,在此不再贅述。
如圖2所示,在上述實施例的基礎上,作為一種優選的實施方式,步驟s11具體包括:
步驟s20:接收原始數據,確定原始數據內的字符的位置,并對位置進行編號。
對原始數據字符的位置進行編號的目的在于,在后續分別對字符進行加密時,每個字符各自使用自身的編號作為加密的參數,因此,即使相同的字符經過不同編號作為參數的加密后,結果也不相同。
步驟s21:將編號作為加密參數,并通過加密密鑰分別對原始數據內的各字符進行加密,以得到加密數據。
可以理解的是,本步驟對原始數據中的每一個字符分別單獨進行加密,并且將每一個字符在原始數據中的位置編號作為加密的參數,所以即使在原始數據中兩個字符相同,但是由于兩個字符在原始數據中的位置不同,導致用于加密的位置編號參數不同,因此加密后的結果也不同。因此,避免了由于原始數據中某一個字符被破解后,其它與該字符相同字符也同樣被破解的情況發生,增加了破解數據的難度,進而提高了加密后數據的安全性與可靠性。
在具體實施中,對各字符進行加密的方式可以為:
n=c–key+(i*imagicnum)。其中n為加密后的字符;c為加密前的字符;i為所加密的字符在數據中的位置編號;imagicnum為用戶魔數。可見每一個字符的i都不同,因此即使加密前的字符c相同,加密后的字符n也不同。可以理解的是,上述對各字符進行加密的方式只是眾多方式中的一種,在此不一一列舉。
此外,作為一種優選的實施方式,密鑰參數還包括:
用戶賬號及用戶魔數。
采用用戶賬號作為密鑰參數是由于用戶賬號方便獲取并且可以象征加密人的身份信息,而采用用戶魔數是由于其完全由加密人設置或是系統生成,不易被他人得知,用戶魔數的獲取方式可以是采用用戶的密碼,或根據用戶密碼生成等。由于通過用戶賬號、用戶魔數及時效參數這三個維度組成了密鑰,因此要對加密數據進行解密需要同時具有這三個參數,進而提升了加密數據的安全性。需要說明的是,密鑰參數還可以包括其他組成部分,在此不做限定。
為了便于對上述實施方式的理解,下面提供一組具體的密鑰參數以進一步說明。密鑰參數中用戶魔數為8341、用戶賬號為guest、時效參數為加密時刻后的30秒。在對加密數據進行解密時,如果密鑰參數中的用戶魔數不為8341,即使是同一個用戶賬號guest且時效參數同樣為加密時刻后的30秒,也無法正確解密;同理的,如果超過了加密時刻后的30秒的時效參數要求,即使用同一個用戶賬號guest和用戶魔數8341,也無法正確解密;同理的,如果用戶賬號為root而不是guest,即使滿足時效參數要求以及用戶魔數8341,也無法正確解密。
此外,作為一種優選的實施方式,將密鑰參數相結合生成加密密鑰具體為:
將用戶賬號與用戶魔數進行組合生成安全賬號;
將安全賬號、時效參數及用戶魔數進行混合運算生成加密密鑰。
將用戶賬號與用戶魔數進行組合生成的安全賬號對于用戶賬號的保密性更高,所以由安全賬號作為密鑰參數生成的密鑰也更難以被不法分子獲得。
在具體實施中,密鑰參數混合運算生成密鑰方式可以為:key=its–(imagicnum*16)+isecid。其中,key為密鑰;its為時效參數;imagicnum為用戶魔數;isecid為用戶賬號與用戶魔數進行組合生成的安全賬號。需要說明的是,上述密鑰的生成方式只是眾多方式中的一種,在此不一一列舉。
如圖2所示,作為一種優選的實施方式,在得到加密數據后,該方法進一步包括:
步驟s22:將加密數據編譯為二進制序列。
由于二進制數字為計算機可直接讀取的語言,因此計算機在傳輸和處理二進制序列時,不易出錯,具有更高的可靠性。
如圖2所示,作為一種優選的實施方式,在將加密數據編譯為二進制序列后,該方法進一步包括:
步驟s23:將時效參數編譯為二進制序列,并作為加密數據的首部。
可以理解的是,將時效參數作為加密數據首部的目的是為了在使用密鑰解密數據前先判斷是否在有效時間內,可以省去使用密鑰中的時效參數進行時效性判斷的步驟。相對應的,在對加密數據進行解密時,需要先讀取加密數據首部的時效參數,并且判斷該加密數據是否在解密時效的范圍內。如果已經超出解密時效的范圍,可以生成一個無效的密鑰,導致解密后的數據為亂碼;否則按照逐字符進行解密。
在上述實施方式的基礎上,作為一種優選的實施方式,二進制序列具體為32位的二制序列。
由于32位可以表示的數字范圍更大,可以提高一次性加密數據的總量,因此可以使數據加密的效率更高。
實施例三
在上文中對于一種數據加密方法的實施例進行了詳細的描述,本發明還提供一種數據加密裝置,由于裝置部分的實施例與方法部分的實施例相互對應,因此裝置部分的實施例請參見方法部分的實施例的描述,這里暫不贅述。
圖3為本發明實施例提供的一種數據加密裝置結構圖。如圖3所示,本發明實施例提供的數據加密裝置,包括:
密鑰生成模塊10,用于獲取至少包括有時效參數的密鑰參數,通過將密鑰參數相結合生成加密密鑰。
數據加密模塊11,用于接收原始數據,通過加密密鑰對原始數據進行加密,以得到加密數據。
其中,在對加密數據進行解密時,如果當前時刻超出時效參數的范圍,則解密失敗。
本發明所提供的數據加密裝置,將時效參數作為密鑰參數之一進行加密密鑰的生成,并通過加密密鑰對原始數據進行加密得到加密數據。由于加密密鑰中具有時效參數,所以通過加密密鑰進行加密后的加密數據也具有了時效上的約束。當通過加密密鑰對加密數據進行解密時,首先判斷當前時刻是否在時效參數的范圍內,如果當前時刻已經超出了時效參數范圍,即使加密密鑰正確,也無法對加密數據進行解密。因此,本裝置縮短了破解者可對加密數據進行破解的時間,進而增加了對數據的破解難度,進而提高了加密后數據的安全性與可靠性。
在實施例三的基礎上,作為一種優選的實施方式,數據加密模塊具體包括:
編號子模塊,用于確定原始數據內的字符的位置,并對位置進行編號;
加密子模塊,用于將編號作為加密參數,并通過加密密鑰分別對原始數據內的各字符進行加密。
在實施例三的基礎上,作為一種優選的實施方式,密鑰參數還包括:
用戶賬號及用戶魔數。
以上對本發明所提供的一種數據加密方法及裝置進行了詳細介紹。說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護范圍內。
還需要說明的是,在本說明書中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。