本發明實施例涉及通信技術領域,尤其涉及一種加密通信方法、裝置及電子設備。
背景技術:
隨著互聯網技術的發展,人們通過互聯網技術能夠完成的事項日益增加。為了滿足用戶的應用需求,在一些互聯網項目中,通常將多個電子設備通過互聯網連接至某一目標設備(如服務器),多個電子設備通過與該目標設備進行信息交互,能夠滿足用戶的各項需求。例如,手機、計算機和智能電視等電子設備能夠通過互聯網訪問服務器,獲取服務器提供的信息資源,從而滿足用戶對信息資源的需求。
另外,電子設備通常需要注冊后才能與目標設備進行各種信息交互。在注冊過程中,電子設備將自身賬號信息和密碼信息傳輸至目標設備。目標設備接收該賬號信息和密碼信息,并基于安全的考慮,依次對各個密碼信息進行加密,再將加密后的密碼信息存儲至數據庫中。
但是,發明人在實施本發明實施例的過程中發現,目標設備目前大多采用MD5方式對各個密碼信息加密,這種情況下,每個密碼信息在加密后獲得的結果都是固定的,例如,若需要加密的密碼信息為123456,則加密后的結果為e10adc3949ba59abbe56e057f20f883e;若需要加密的密碼信息為qazwsx,則加密后的結果為76419C58630D9F35DE7AC538C2FD6737。該種加密方式極易被破解,甚至很多黑客根據常見字符串的MD5加密結果制作了彩虹表,然后根據彩虹表直接進行反查。因此,目前目標設備采用的加密方法存在極大的風險,安全性較低。
技術實現要素:
本發明實施例中提供了一種加密通信方法、裝置及電子設備,以解決現有技術采用的加密方法存在極大的風險,安全性較低的問題
本發明實施例公開了如下技術方案:
第一方面,本發明實施例提供了一種加密通信方法,包括:
獲取每個預設時間周期內使用的一個或多個密碼信息;
統計所述一個或多個密碼信息中包括的每個字符出現的次數,并根據所述每個字符出現的次數獲取所述每個字符對應的編碼值;
確定需要加密的密碼信息中出現的每個字符對應的編碼值,并根據每個字符在所述密碼信息中的出現次序,對所述每個字符對應的編碼值進行拼接,根據拼接結果確定加密結果;
存儲所述加密結果。
通過本發明實施例公開的方法對密碼信息進行加密,獲取的加密結果隨時間周期性變化,因此不易被破解,從而解決了現有技術采用的加密方法存在極大的風險,安全性較低的問題。
可選的,所述統計所述一個或多個密碼信息中包括的每個字符出現的次數,并根據所述每個字符出現的次數獲取所述每個字符對應的編碼值,包括:
在統計所述一個或多個密碼信息中包括的每個字符出現的次數之后,根據所述每個字符出現的次數對所述每個字符進行排序;
根據排序結果,對所述每個字符進行二叉堆編碼,并通過編碼結果,獲取所述每個字符對應的編碼值。
可選的,所述根據排序結果,對所述每個字符進行二叉堆編碼,并通過編碼結果,獲取所述每個字符對應的編碼值,包括:
根據排序結果,對所述每個字符進行最大堆編碼;
其中,編碼形成的最大堆的每個節點分別為所述每個字符,所述根節點為出現的次數最多的字符,每個父節點的兩個子節點分別為出現次數僅次于所述父節點出現次數的兩個字符,所述兩個子節點中出現次數較多的字符為所述父節點的在左孩子,所述兩個子節點中出現次數較少的字符為所述父節點的在右孩子,并且,根節點的鍵值為1,左邊每個子節點的鍵值為0,右邊每個子節點的鍵值為1;
根據所述最大堆,以及每個字符對應的節點的鍵值,確定所述每個字符對應的編碼值。
可選的,所述根據拼接結果確定加密結果,包括:
在獲取拼接結果后,對所述拼接結果進行劃分,其中,劃分后的每組編碼包括m個數字,不足m個數字的一組編碼中補充0或1,m為預設的正整數,確定劃分后的包含m個數字的每組編碼構成的字符串為所述加密結果。
通過上述步驟,能夠對拼接結果進一步進行處理,得到加密結果,提高了破解的難度,從而能夠提高安全性。
可選的,所述根據拼接結果確定加密結果,包括:
在獲取拼接結果后,對所述拼接結果進行劃分,其中,劃分后的每組編碼包括4個數字,不足4個數字的一組編碼中補充0或1;
將劃分后的每組編碼分別轉化成16進制,獲取每組編碼轉化后的數字,確定由所述每組編碼轉化后的數字構成的字符串為所述加密結果。
通過上述步驟,能夠對拼接結果進一步進行處理,得到加密結果,提高了破解的難度,從而能夠提高安全性,并且,由于將每組編碼分別轉化成16進制,因此加密結果得到簡化,減少存儲空間的占用。
第二方面,本發明實施例提供了一種加密通信裝置,包括:
密碼信息獲取模塊,用于獲取每個預設時間周期內使用的一個或多個密碼信息;
編碼值獲取模塊,用于統計所述一個或多個密碼信息中包括的每個字符出現的次數,并根據所述每個字符出現的次數獲取所述每個字符對應的編碼值;
加密結果確定模塊,用于確定需要加密的密碼信息中出現的每個字符對應的編碼值,并根據每個字符在所述密碼信息中的出現次序,對所述每個字符對應的編碼值進行拼接,根據拼接結果確定加密結果;
加密結果存儲模塊,用于存儲所述加密結果。
通過本發明實施例公開的裝置對密碼信息進行加密,獲取的加密結果隨時間周期性變化,因此不易被破解,從而解決了現有技術采用的加密方法存在極大的風險,安全性較低的問題。
可選的,所述編碼值獲取模塊包括:
字符排序單元,用于在統計所述一個或多個密碼信息中包括的每個字符出現的次數之后,根據所述每個字符出現的次數對所述每個字符進行排序;
二叉堆編碼單元,用于根據排序結果,對所述每個字符進行二叉堆編碼,并通過編碼結果,獲取所述每個字符對應的編碼值。
可選的,所述二叉堆編碼單元包括:
最大堆編碼子單元,用于根據排序結果,對所述每個字符進行最大堆編碼;
其中,編碼形成的最大堆的每個節點分別為所述每個字符,所述根節點為出現的次數最多的字符,每個父節點的兩個子節點分別為出現次數僅次于所述父節點出現次數的兩個字符,所述兩個子節點中出現次數較多的字符為所述父節點的在左孩子,所述兩個子節點中出現次數較少的字符為所述父節點的在右孩子,并且,根節點的鍵值為1,左邊每個子節點的鍵值為0,右邊每個子節點的鍵值為1;
編碼值確定子單元,用于根據所述最大堆,以及每個字符對應的節點的鍵值,確定所述每個字符對應的編碼值。
可選的,所述加密結果確定模塊包括:
第一確定單元,用于在獲取拼接結果后,對所述拼接結果進行劃分,其中,劃分后的每組編碼包括m個數字,不足m個數字的一組編碼中補充0或1,m為預設的正整數,確定劃分后的包含m個數字的每組編碼構成的字符串為所述加密結果。
通過第一確定單元,能夠對拼接結果進一步進行處理,得到加密結果,提高了破解的難度,從而能夠提高安全性。
可選的,所述加密結果確定模塊包括:
劃分單元,用于在獲取拼接結果后,對所述拼接結果進行劃分,其中,劃分后的每組編碼包括4個數字,不足4個數字的一組編碼中補充0或1;
第二確定單元,用于將劃分后的每組編碼分別轉化成16進制,獲取每組編碼轉化后的數字,確定由所述每組編碼轉化后的數字構成的字符串為所述加密結果。
通過劃分單元和第二確定單元,能夠對拼接結果進一步進行處理,得到加密結果,提高了破解的難度,從而能夠提高安全性,并且,由于將每組編碼分別轉化成16進制,因此加密結果得到簡化,減少存儲空間的占用。
第三方面,本發明實施例提供了一種電子設備,包括:
至少一個處理器;以及,
與所述至少一個處理器通信連接的存儲器;其中,
所述存儲器存儲有可被所述一個處理器執行的指令,所述指令被被所述至少一個處理器執行,以使所述至少一個處理器能夠:
獲取每個預設時間周期內使用的一個或多個密碼信息;
統計所述一個或多個密碼信息中包括的每個字符出現的次數,并根據所述每個字符出現的次數獲取所述每個字符對應的編碼值;
確定需要加密的密碼信息中出現的每個字符對應的編碼值,并根據每個字符在所述密碼信息中的出現次序,對所述每個字符對應的編碼值進行拼接,根據拼接結果確定加密結果;
存儲所述加密結果。
第四方面,本發明實施例還提供了一種非暫態計算機可讀存儲介質,所述非暫態計算機可讀存儲介質存儲計算機指令,所述計算機指令用于使所述計算機執行上述第一方面任意一個實施例提供的所述加密通信方法。
第五方面,本發明實施例還提供了一種計算機程序產品,所述計算機程序產品包括存儲在非暫態計算機可讀存儲介質上的計算程序,所述計算機程序包括程序指令,當所述程序指令被計算機執行時,使所述計算機執行上述第一方面任意一個實施例提供的所述加密通信方法。
本發明實施例提供的技術方案可以包括以下有益效果:
本發明實施例公開一種加密通信方法、裝置及電子設備。在本發明實施例公開的方法中,每隔預設時間周期對密碼信息進行一次加密,并且,在加密過程中,根據每個字符出現的次數確定每個字符對應的編碼值,由于每個時間周期內,獲取到的密碼信息不固定,導致每個字符出現的次數不固定,相應的,每個字符對應的編碼值也是不固定的,因此,對編碼值進行拼接的拼接結果也不固定,獲取的加密結果也是隨時間周期變化的。也就是說,通過本發明實施例公開的方案對密碼信息進行加密,獲取的加密結果時間周期性變化,因此不易被破解,從而解決了現有技術采用的加密方法存在極大的風險,安全性較低的問題。
應當理解的是,以上的一般描述和后文的細節描述僅是示例性和解釋性的,并不能限制本發明。
附圖說明
此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本發明的實施例,并與說明書一起用于解釋本發明的原理。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領域普通技術人員而言,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
一個或多個實施例通過與之對應的附圖中的圖片進行示例性說明,這些示例性說明并不構成對實施例的限定,附圖中具有相同參考數字標號的元件表示為類似的元件,除非有特別申明,附圖中的圖不構成比例限制。
圖1為本發明實施例提供的一種加密通信方法的應用場景示意圖;
圖2為本發明實施例提供的一種加密通信方法的工作流程示意圖;
圖3為本發明實施例提供的一種加密通信方法中,獲取每個字符對應的編碼值的工作流程示意圖;
圖4為本發明實施例提供的一種加密通信方法中,最大堆編碼的示意圖;
圖5為本發明實施例提供的一種加密通信裝置的結構示意圖;
圖6為本發明實施例提供的一種電子設備的結構示意圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發明相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本發明的一些方面相一致的裝置和方法的例子。
本發明實施例公開一種加密通信方法、裝置及電子設備,以解決現有技術采用的加密方法存在極大的風險,安全性較低的問題。
本發明實施例一公開一種加密通信方法,該方法應用于電子設備,所述電子設備可以為服務器等。參見圖1所示的應用場景示意圖,圖1中包括執行本發明實施例公開的加密通信方法的電子設備10,并且,該電子設備10通過網絡與多個其他的電子設備20(例如,手機、智能電視和車載終端等)相連接,并且能夠接收所述多個其他的電子設備20傳輸的密碼信息。
參見圖2所示的工作流程示意圖,本發明實施例公開的加密通信方法包括以下步驟:
步驟S11、獲取每個預設時間周期內使用的一個或多個密碼信息。
本發明實施例公開的加密通信方法中,每隔預設時間周期對接收到密碼信息進行一次加密。
其中,所述預設時間周期的具體時長可根據實際需求設定,本發明實施例對此不做限定。例如,所述預設時間周期可以為一周。通常情況下,對安全性要求越高,則所述預設時間周期的具體時長越短。
步驟S12、統計所述一個或多個密碼信息中包括的每個字符出現的次數,并根據所述每個字符出現的次數獲取所述每個字符對應的編碼值。
執行本發明實施例公開的加密通信方法的電子設備,能夠獲取與其為網絡連接的多個電子設備的密碼信息。其中,每個密碼信息均由字符構成,因此,可對每個密碼信息中的字符出現的次數進行累加計算,獲取每個字符出現的總的次數。
步驟S13、確定需要加密的密碼信息中出現的每個字符對應的編碼值,并根據每個字符在所述密碼信息中的出現次序,對所述每個字符對應的編碼值進行拼接,根據拼接結果確定加密結果。
該步驟中,根據每個字符的出現次序,對所述每個字符對應的編碼值進行拼接,也就是說,若某一字符在密碼信息中位于第N位,即該字符的出現次序為N,這種情況下,在拼接時,將該字符對應的編碼值也放在第N位。其中,N為正整數。
步驟S14、存儲所述加密結果。
本發明實施例公開一種加密通信方法,在本發明實施例公開的方法中,每隔預設時間周期對密碼信息進行一次加密,并且,在加密過程中,根據每個字符出現的次數確定每個字符對應的編碼值,由于每個時間周期內,獲取到的密碼信息不固定,導致每個字符出現的次數不固定,相應的,每個字符對應的編碼值也是不固定的,因此,對編碼值進行拼接的拼接結果也不固定,獲取的加密結果也是隨時間周期變化的。也就是說,通過本發明實施例公開的方法對密碼信息進行加密,獲取的加密結果時間周期性變化,因此不易被破解,從而解決了現有技術采用的加密方法存在極大的風險,安全性較低的問題。
作為圖2方法的細化,在本發明的另一實施例中,如圖3所示,步驟S12,統計所述一個或多個密碼信息中包括的每個字符出現的次數,并根據所述每個字符出現的次數獲取所述每個字符對應的編碼值,通常包括以下步驟:
步驟S121、在統計所述一個或多個密碼信息中包括的每個字符出現的次數之后,根據所述每個字符出現的次數對所述每個字符進行排序。
例如,可按照每個字符出現的次數,由大到小對其進行排序。
步驟S122、根據排序結果,對所述每個字符進行二叉堆編碼,并通過編碼結果,獲取所述每個字符對應的編碼值。
通過步驟S121至步驟S122的方案,能夠根據二叉堆編碼的方式,獲取每個字符對應的編碼值。
進一步的,所述根據排序結果,對所述每個字符進行二叉堆編碼,并通過編碼結果,獲取所述每個字符對應的編碼值,包括以下步驟:
首先,根據排序結果,對所述每個字符進行最大堆編碼。
其中,其中,編碼形成的最大堆的每個節點分別為所述每個字符,所述根節點為出現的次數最多的字符,每個父節點的兩個子節點分別為出現次數僅次于所述父節點出現次數的兩個字符,所述兩個子節點中出現次數較多的字符為所述父節點的在左孩子,所述兩個子節點中出現次數較少的字符為所述父節點的在右孩子,并且,根節點的鍵值為1,左邊每個子節點的鍵值為0,右邊每個子節點的鍵值為1。
然后,根據所述最大堆,以及每個字符對應的節點的鍵值,確定所述每個字符對應的編碼值。
上述方案中,通過二叉堆中的最大堆編碼,能夠獲取每個字符對應的編碼值。
為了詳細闡述如何根據最大堆編碼的方式獲取每個字符對應的編碼值,以下通過一個示例進行說明。
在該示例中,設定通過步驟S12,統計每個密碼信息中包括的每個字符出現的次數后,確定a這一字符出現的次數總共為100次,b這一字符出現的次數總共為80次,C這一字符出現的次數總共為50次,D這一字符出現的次數總共為20次,f這一字符出現的次數總共為16次,8這一字符出現的次數總共為12次,3這一字符出現的次數總共為10次。
這種情況下,構造的最大堆如圖4所示,由于這一字符出現的次數最多,則a為根節點。由于每個父節點的兩個子節點分別為出現次數僅次于所述父節點出現次數的兩個字符,所述兩個子節點中出現次數較多的字符為所述父節點的在左孩子,所述兩個子節點中出現次數較少的字符為所述父節點的在右孩子,將a作為父節點,則a的兩個子節點分別為b和C,并且由于b出現的次數較多,C出現的次數較少,則b為a的在左孩子,C為a的在右孩子。相應的,將b作為父節點時,b的兩個子節點分別為D和f,并且D為b的在左孩子,f為b的在右孩子。將C作為父節點,則C的兩個子節點分別為8和3,并且8為C的在左孩子,3為C的在右孩子。
另外,由于根節點的鍵值為1,左邊每個子節點的鍵值為0,右邊每個子節點的鍵值為1,則根節點a的鍵值為1,b的鍵值為0,C的鍵值為1,D的鍵值為0,f的鍵值為1,8的鍵值為0,3的鍵值為1。
根據該最大堆,以及每個字符對應的節點的鍵值,可以確定a對應的編碼值為1,b對應的編碼值為10,C對應的編碼值為11,D對應的編碼值為100,f對應的編碼值為101,8對應的編碼值為110,3對應的編碼值為111。
另外,在本發明實施例公開的加密通信方法中,還公開根據每個字符在所述密碼信息中的出現次序,對所述每個字符對應的編碼值進行拼接,根據拼接結果確定加密結果的步驟。在實際應用中,可通過多種方式獲取所述加密結果。
在其中一種方式中,所述根據拼接結果確定加密結果,包括:
在獲取拼接結果后,對所述拼接結果進行劃分,其中,劃分后的每組編碼包括m個數字,不足m個數字的一組編碼中補充0或1,m為預設的正整數,確定劃分后的包含m個數字的每組編碼構成的字符串為所述加密結果。
例如,若根據上述示例,確定a對應的編碼值為1,b對應的編碼值為10,C對應的編碼值為11,D對應的編碼值為100,f對應的編碼值為101,8對應的編碼值為110,3對應的編碼值為111。這種情況下,若待加密的密碼信息為aDCbf83,則該密碼信息中每個字符對應的編碼值在拼接之后的拼接結果為11001110101110111。假設m為4,不足m個數字的一組編碼中補充0,則對拼接結果劃分后得到1,1001,1101,0111,0111,由于第一組編碼的數量不到四個,則在第一組編碼前補充三個0,得到0001,1001,1101,0111,0111。其中,0001,1001,1101,0111,0111即為加密結果。
通過上述步驟,能夠對拼接結果進一步進行處理,得到加密結果,提高了破解的難度,從而能夠提高安全性。
在另外一種方式中,所述根據拼接結果確定加密結果,包括以下步驟:
首先,在獲取拼接結果后,對所述拼接結果進行劃分,其中,劃分后的每組編碼包括4個數字,不足4個數字的一組編碼中補充0或1。
然后,將劃分后的每組編碼分別轉化成16進制,獲取每組編碼轉化后的數字,確定由所述每組編碼轉化后的數字構成的字符串為所述加密結果。
例如,在上述實例中,得到0001,1001,1101,0111,0111這五組編碼后,還可以分別將每組轉化成16進制,從而獲取19b77,該字符串即為最終的加密結果。
通過上述步驟,能夠對拼接結果進一步進行處理,得到加密結果,提高了破解的難度,從而能夠提高安全性,并且,由于將每組編碼分別轉化成16進制,因此加密結果得到簡化,減少存儲空間的占用。
下述為本發明裝置實施例,可以用于執行本發明方法實施例。對于本發明裝置實施例中未披露的細節,請參照本發明方法實施例。
本發明實施例公開一種加密通信裝置,參見圖5所示的結構示意圖,所述加密通信裝置包括:密碼信息獲取模塊100、編碼值獲取模塊200、加密結果確定模塊300和加密結果存儲模塊400。
其中,所述密碼信息獲取模塊100,用于用于獲取每個預設時間周期內使用的一個或多個密碼信息。
其中,所述預設時間周期的具體時長可根據實際需求設定,本發明實施例對此不做限定。例如,所述預設時間周期可以為一周。通常情況下,對安全性要求越高,則所述預設時間周期的具體時長越短。
所述編碼值獲取模塊200,用于統計所述一個或多個密碼信息中包括的每個字符出現的次數,并根據所述每個字符出現的次數獲取所述每個字符對應的編碼值。
所述加密結果確定模塊300,加密結果確定模塊,用于確定需要加密的密碼信息中出現的每個字符對應的編碼值,并根據每個字符在所述密碼信息中的出現次序,對所述每個字符對應的編碼值進行拼接,根據拼接結果確定加密結果。
該模塊中,根據每個字符的出現次序,對所述每個字符對應的編碼值進行拼接,也就是說,若某一字符在密碼信息中位于第N位,即該字符的出現次序為N,這種情況下,在拼接時,將該字符對應的編碼值也放在第N位。其中,N為正整數。
通過本發明實施例公開的裝置對密碼信息進行加密,獲取的加密結果隨著時間周期性的變化,因此不易被破解,從而解決了現有技術采用的加密方法存在極大的風險,安全性較低的問題。
進一步的,在本發明實施例公開的加密通信裝置中,所述編碼值獲取模塊包括:
字符排序單元,用于在統計所述一個或多個密碼信息中包括的每個字符出現的次數之后,根據所述每個字符出現的次數對所述每個字符進行排序;
二叉堆編碼單元,用于用于根據排序結果,對所述每個字符進行二叉堆編碼,并通過編碼結果,獲取所述每個字符對應的編碼值。
進一步的,所述二叉堆編碼單元包括:
最大堆編碼子單元,用于根據排序結果,對所述每個字符進行最大堆編碼;
其中,編碼形成的最大堆的每個節點分別為所述每個字符,所述根節點為出現的次數最多的字符,每個父節點的兩個子節點分別為出現次數僅次于所述父節點出現次數的兩個字符,所述兩個子節點中出現次數較多的字符為所述父節點的在左孩子,所述兩個子節點中出現次數較少的字符為所述父節點的在右孩子,并且,根節點的鍵值為1,左邊每個子節點的鍵值為0,右邊每個子節點的鍵值為1;
編碼值確定子單元,用于根據所述最大堆,以及每個字符對應的節點的鍵值,確定所述每個字符對應的編碼值。
在本發明實施例公開的加密通信裝置中,所述加密結果確定模塊可通過多種形式實現。在其中一種形式中,所述加密結果確定模塊包括:
第一確定單元,用于在獲取拼接結果后,對所述拼接結果進行劃分,其中,劃分后的每組編碼包括m個數字,不足m個數字的一組編碼中補充0或1,m為預設的正整數,確定劃分后的包含m個數字的每組編碼構成的字符串為所述加密結果。
通過第一確定單元,能夠對拼接結果進一步進行處理,得到加密結果,提高了破解的難度,從而能夠提高安全性。
在另外一種形式中,所述加密結果確定模塊包括:
劃分單元,用于在獲取拼接結果后,對所述拼接結果進行劃分,其中,劃分后的每組編碼包括4個數字,不足4個數字的一組編碼中補充0或1;
第二確定單元,用于將劃分后的每組編碼分別轉化成16進制,獲取每組編碼轉化后的數字,確定由所述每組編碼轉化后的數字構成的字符串為所述加密結果。
通過劃分單元和第二確定單元,能夠對拼接結果進一步進行處理,得到加密結果,提高了破解的難度,從而能夠提高安全性,并且,由于將每組編碼分別轉化成16進制,因此加密結果得到簡化,減少存儲空間的占用。
在本發明另一實施例中,公開一種電子設備,該電子設備包括:
至少一個處理器;以及,
與所述至少一個處理器通信連接的存儲器;其中,
所述存儲器存儲有可被所述一個處理器執行的指令,所述指令被被所述至少一個處理器執行,以使所述至少一個處理器能夠:
獲取每個預設時間周期內使用的一個或多個密碼信息;
統計所述一個或多個密碼信息中包括的每個字符出現的次數,并根據所述每個字符出現的次數獲取所述每個字符對應的編碼值;
確定需要加密的密碼信息中出現的每個字符對應的編碼值,并根據每個字符在所述密碼信息中的出現次序,對所述每個字符對應的編碼值進行拼接,根據拼接結果確定加密結果;
存儲所述加密結果。
進一步的,所述統計所述一個或多個密碼信息中包括的每個字符出現的次數,并根據所述每個字符出現的次數獲取所述每個字符對應的編碼值,包括:
在統計所述一個或多個密碼信息中包括的每個字符出現的次數之后,根據所述每個字符出現的次數對所述每個字符進行排序;
根據排序結果,對所述每個字符進行二叉堆編碼,并通過編碼結果,獲取所述每個字符對應的編碼值。
進一步的,所述所述根據排序結果,對所述每個字符進行二叉堆編碼,并通過編碼結果,獲取所述每個字符對應的編碼值,包括:
根據排序結果,對所述每個字符進行最大堆編碼;
其中,編碼形成的最大堆的每個節點分別為所述每個字符,所述根節點為出現的次數最多的字符,每個父節點的兩個子節點分別為出現次數僅次于所述父節點出現次數的兩個字符,所述兩個子節點中出現次數較多的字符為所述父節點的在左孩子,所述兩個子節點中出現次數較少的字符為所述父節點的在右孩子,并且,根節點的鍵值為1,左邊每個子節點的鍵值為0,右邊每個子節點的鍵值為1;
根據所述最大堆,以及每個字符對應的節點的鍵值,確定所述每個字符對應的編碼值。
進一步的,所述根據拼接結果確定加密結果,包括:
在獲取拼接結果后,對所述拼接結果進行劃分,其中,劃分后的每組編碼包括m個數字,不足m個數字的一組編碼中補充0或1,m為預設的正整數,確定劃分后的包含m個數字的每組編碼構成的字符串為所述加密結果。
進一步的,所述根據拼接結果確定加密結果,包括:
在獲取拼接結果后,對所述拼接結果進行劃分,其中,劃分后的每組編碼包括4個數字,不足4個數字的一組編碼中補充0或1;
將劃分后的每組編碼分別轉化成16進制,獲取每組編碼轉化后的數字,確定由所述每組編碼轉化后的數字構成的字符串為所述加密結果。
本發明實施例提供了一種非暫態計算機存儲介質,所述計算機存儲介質存儲有計算機可執行指令,該計算機可執行指令可執行上述任意方法實施例中的加密通信方法。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。相應的,本發明實施例還提供了一種計算機程序產品,所述計算機程序產品包括存儲在非暫態計算機可讀存儲介質上的計算程序,所述計算機程序包括程序指令,當所述程序指令被計算機執行時,使所述計算機執行上任意一個實施例提供的所述加密通信方法。
圖6是本發明實施例提供的執行加密通信方法的電子設備的硬件結構示意圖,如圖6所示,該設備包括:
一個或多個處理器610以及存儲器620,圖6中以一個處理器610為例。
執行加密通信方法的設備還可以包括:輸入裝置630和輸出裝置640。
處理器610、存儲器620、輸入裝置630和輸出裝置640可以通過總線或者其他方式連接,圖6中以通過總線連接為例。
存儲器620作為一種非易失性計算機可讀存儲介質,可用于存儲非易失性軟件程序、非易失性計算機可執行程序以及模塊,如本發明實施例中的加密通信方法對應的程序指令/模塊(例如,附圖5所示的密碼信息獲取模塊100、編碼值獲取模塊200、加密結果確定模塊300和加密結果存儲模塊400)。處理器610通過運行存儲在存儲器620中的非易失性軟件程序、指令以及模塊,從而執行服務器的各種功能應用以及數據處理,即實現上述任意方法實施例中的加密通信方法。
存儲器620可以包括存儲程序區和存儲數據區,其中,存儲程序區可存儲操作系統、至少一個功能所需要的應用程序;存儲數據區可存儲根據加密通信裝置的使用所創建的數據等。此外,存儲器620可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他非易失性固態存儲器件。在一些實施例中,存儲器620可選包括相對于處理器610遠程設置的存儲器,這些遠程存儲器可以通過網絡連接至加密通信裝置。上述網絡的實例包括但不限于互聯網、企業內部網、局域網、移動通信網及其組合。
輸入裝置630可接收輸入的數字或字符信息,以及產生與加密通信裝置的用戶設置以及功能控制有關的鍵信號輸入。輸出裝置640可包括顯示屏等顯示設備。
所述一個或者多個模塊存儲在所述存儲器620中,當被所述一個或者多個處理器610執行時,執行上述任意方法實施例中的加密通信方法。
上述產品可執行本發明實施例所提供的方法,具備執行方法相應的功能模塊和有益效果。未在本實施例中詳盡描述的技術細節,可參見本發明實施例所提供的方法。
本發明實施例的電子設備以多種形式存在,包括但不限于:
(1)移動通信設備:這類設備的特點是具備移動通信功能,并且以提供話音、數據通信為主要目標。這類終端包括:智能手機(例如iPhone)、多媒體手機、功能性手機,以及低端手機等。
(2)超移動個人計算機設備:這類設備屬于個人計算機的范疇,有計算和處理功能,一般也具備移動上網特性。這類終端包括:PDA、MID和UMPC設備等,例如i Pad。
(3)便攜式娛樂設備:這類設備可以顯示和播放多媒體內容。該類設備包括:音頻、視頻播放器(例如iPod),掌上游戲機,電子書,以及智能玩具和便攜式車載導航設備。
(4)服務器:提供計算服務的設備,服務器的構成包括處理器、硬盤、內存、系統總線等,服務器和通用的計算機架構類似,但是由于需要提供高可靠的服務,因此在處理能力、穩定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。
(5)其他具有數據交互功能的電子裝置。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上??梢愿鶕嶋H的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可借助軟件加通用硬件平臺的方式來實現,當然也可以通過硬件?;谶@樣的理解,上述技術方案本質上或者說對相關技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在計算機可讀存儲介質中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行各個實施例或者實施例的某些部分所述的方法。
最后應說明的是:以上實施例僅用以說明本申請的技術方案,而非對其限制;盡管參照前述實施例對本申請進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本申請各實施例技術方案的精神和范圍。