一種云租戶關(guān)鍵信息的加密方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明公開一種云租戶關(guān)鍵信息的加密方法,屬于信息加密管理技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]云計算是分布式處理(Distributed Computing)、并行處理(ParallelComputillg)和網(wǎng)格計算(Grid Computillg)的延續(xù)和發(fā)展,或者說是這些計算機科學概念的商業(yè)實現(xiàn)。它不完全是計算,也不純粹是存儲,而是集計算和存儲于一身,將服務(wù)器、網(wǎng)絡(luò)、應(yīng)用程序以及數(shù)據(jù)庫等各種資源通過互聯(lián)網(wǎng)為用戶提供綜合服務(wù)的一種理念。云計算中擁有大量用戶,使用云計算平臺資源時,用戶個人信息的安全問題十分重要,通常使用的MD5加密方法,主要是對云租戶的密碼口令進行加密,但是當用戶的密碼強度一般甚至過低時,可通過設(shè)置字典來進行破解;或者通過在線的MD5值查詢網(wǎng)站提供的MD5密碼值進行破解;也可通過社會工程學來獲取或者重新設(shè)置用戶的密碼。因此隨著技術(shù)的發(fā)展,MD5加密方法安全性明顯不足。本發(fā)明提供一種云租戶關(guān)鍵信息的加密方法,采用通過對明文進行MD5加密,同時對UUID進行加密,然后兩者通過ascll碼的方式進行位運算,再通過MD5加密,然后把UUID原始數(shù)據(jù)與密文進行連接從而達到一種密碼強度極高的密文,從而解決在云計算這種開放互聯(lián)的環(huán)境中對托管數(shù)據(jù)進行訪問控制以保障用戶數(shù)據(jù)私密性的問題。
[0003]UUID,Universally Unique Identifier,簡稱 UUID,通用唯一識別碼。是一種軟件建構(gòu)的標準,也為自由軟件基金會組織在分散式計算環(huán)境領(lǐng)域的一部份。UUID讓分散式系統(tǒng)中的所有元素,都能有唯一的辨識信息,而不需要通過中央控制端來做辨識信息的指定。
[0004]MD5就是采用單向加密的加密算法,MD5具有兩個特性:第一是任意兩段明文數(shù)據(jù),加密以后的密文不能是相同的;第二是任意一段明文數(shù)據(jù),經(jīng)過加密以后,其結(jié)果必須永遠是不變的。前者意為不可能有任意兩段明文加密以后得到相同的密文,后者意為如果我們加密特定的數(shù)據(jù),得到的密文一定是相同的。
【發(fā)明內(nèi)容】
[0005]本發(fā)明針對現(xiàn)有加密方法對云計算平臺用戶的信息保護強度不夠的問題,提供一種云租戶關(guān)鍵信息的加密方法,提高在云計算這種開放互聯(lián)的環(huán)境中對托管數(shù)據(jù)進行訪問控制以保障用戶數(shù)據(jù)私密性水平。
[0006]本發(fā)明提出的具體方案是:
一種云租戶關(guān)鍵信息的加密方法,云租戶注冊輸入注冊密碼,同時生成UUID,將UUID截取成字符串,將兩者各自進行MD5加密,加密后的密碼和UUID字符串各自形成兩個字符數(shù)組,將兩個字符數(shù)組中的字符按照位置轉(zhuǎn)換為ASCLL碼并按位進行邏輯操作,將操作后的ASCII碼再轉(zhuǎn)換成字符串,再次通過MD5加密成最終密碼,把截取成字符串的UUID數(shù)據(jù)和最終密碼連接到一塊形成新密碼存入數(shù)據(jù)庫中。
[0007]云租戶新密碼存入數(shù)據(jù)庫后,再次進行登錄時,通過用戶名從數(shù)據(jù)庫中提取密碼及截取成字符串的UUID數(shù)據(jù),利用截取成字符串的UUID數(shù)據(jù)與用戶的注冊密碼重復進行生成新密碼的操作,得到驗證密碼,再與數(shù)據(jù)庫中的密碼進行對比驗證。
[0008]所述將兩個字符數(shù)組中的字符按照位置轉(zhuǎn)換為ASCLL碼并按位進行與或非邏輯操作中的一種操作。
[0009]將云租戶注冊同時生成UUID,截取成32bit的字符串。
[0010]所述把截取成字符串的UUID數(shù)據(jù)和最終密碼連接到一塊形成64位的新密碼存入數(shù)據(jù)庫中。
[0011]本發(fā)明的有益之處是:
本發(fā)明利用云租戶注冊輸入注冊密碼,同時生成UUID,將UUID截取成字符串,將兩者各自進行MD5加密,加密后的密碼和UUID字符串各自形成兩個字符數(shù)組,將兩個字符數(shù)組中的字符按照位置轉(zhuǎn)換為ASCLL碼并按位進行邏輯操作,將操作后的ASCII碼再轉(zhuǎn)換成字符串,再次通過MD5加密成最終密碼,把截取成字符串的UUID數(shù)據(jù)和最終密碼連接到一塊形成新密碼存入數(shù)據(jù)庫中;采用通過對明文進行MD5加密,同時對UUID進行加密,然后兩者通過ascll碼的方式進行位運算,再通過MD5加密,然后把UUID原始數(shù)據(jù)與密文進行連接從而達到一種密碼強度極高的密文,從而解決在云計算這種開放互聯(lián)的環(huán)境中對托管數(shù)據(jù)進行訪問控制以保障用戶數(shù)據(jù)私密性的問題,提高了用戶數(shù)據(jù)私密性水平。
【具體實施方式】
[0012]例舉一個【具體實施方式】,進一步說明本發(fā)明。采用編程語言:java;運行環(huán)境:win7_64bit、4g 內(nèi)存、inteli5_4210 處理器。
[0013]一種云租戶關(guān)鍵信息的加密方法,云租戶注冊輸入注冊密碼,同時生成UUID,將UUID截取成字符串,將兩者各自進行MD5加密,加密后的密碼和UUID字符串各自形成兩個字符數(shù)組,將兩個字符數(shù)組中的字符按照位置轉(zhuǎn)換為ASCLL碼并按位進行邏輯操作,將操作后的ASCII碼再轉(zhuǎn)換成字符串,再次通過MD5加密成最終密碼,把截取成字符串的UUID數(shù)據(jù)和最終密碼連接到一塊形成新密碼存入數(shù)據(jù)庫中。其中將云租戶注冊同時生成UUID,截取成32bit的字符串,MD5加密也同樣為32bit,最終形成的新密碼為64位,存入數(shù)據(jù)庫中。此外將兩個字符數(shù)組中的字符按照位置轉(zhuǎn)換為ASCLL碼并按位可以進行與或非邏輯操作中的一種操作。
[0014]云租戶新密碼存入數(shù)據(jù)庫后,再次進行登錄時,通過用戶名從數(shù)據(jù)庫中提取密碼及截取成字符串的UUID數(shù)據(jù),利用截取成字符串的UUID數(shù)據(jù)與用戶的注冊密碼重復進行生成新密碼的操作,得到驗證密碼,再與數(shù)據(jù)庫中的密碼進行對比驗證。
[0015]上述云租戶關(guān)鍵信息的加密方法,其核心算法推導式為UUID+MD5 {ASCLL (MD5 (userPassword)) | ASCLL (MD5 (UUID))},加密過程算法代碼為:
/林
* MD5進行32位加密方法 */
public String Md5String(String str)
{
String retuStr = 〃〃;try {
MessageDigest md = MessageDigest.getlnstance (〃MD5〃);//使用java.security.MessageDigest 類來 MD5
md.update (str.getBytes ()); byte b [] = md.digest ();
int i; StringBuffer buf = new StringBuffer (〃〃); for (int j = 0; j < b.length; j++) { i = b[j]; if (i〈0) i+= 256; if (i〈16)
buf.append (^0^);
buf.append (Integer.toHexString (i));
}
retuStr = buf.toStringO ;
} catch (NoSuchAlgorithmExcept1n e) {
// TODO Auto-generated catch block e.printStackTrace ();
}
return retuStr;
}
public static void main(String[] args) {
SuperMd5 sm = new SuperMd5 () ;// 創(chuàng)建一個對象
String userPassword = 〃qwe ! @#〃; // 假設(shè)用戶輸入的密碼是〃qwe !
String uuid = UUID.randomUUID ().toStringO ;
String newuuid = uuid.substring (0,8)+uuid.substring (9,13) +uuid.substring (14,18) +
uuid.substring(19, 23) +uuid.substring(24, 36) ;// 獲取一個 32
位的字符串
String passwordMd5 = sm.Md5String (userPassword) ; //對用戶密碼進行32位MD5加密操作
String uuidMd5 = sm.Md5String (newuuid) ;//對生成隨機的
uuid進行32位加密操作
char[] passArray = passwordMd5.toCharArray () ;//把加密后的密碼字符轉(zhuǎn)換為字符數(shù)組
char [] uuidArray = uuidMd5.toChar Array () ;// 把加密后的
uuid字符轉(zhuǎn)換為字符數(shù)組
char口 parm = new char[32];for (int i=0;i〈32;i++) {
//密碼與uuid的每一個字符轉(zhuǎn)換為ascll碼之后做一次按位的或運算 parm[i]= (char)((int)passArray[i]|(int)uuidArray[i]);
}
String str = new String (parm) ;//把字符數(shù)組轉(zhuǎn)換為字符串;
String strMd5 = sm.Md5String(str) ;//把位運算后的字符串進行MD5加密
String userSuperPassword = newuuid+strMd5; // 最終密碼是“運算后的字符串進行MD5加密” + “最初生成的UUID”
System, out.println(userSuperPassword);
}
本發(fā)明可以應(yīng)用于云平臺下,保障用戶信息安全。
【主權(quán)項】
1.一種云租戶關(guān)鍵信息的加密方法,其特征是云租戶注冊輸入注冊密碼,同時生成UUID,將UUID截取成字符串,將兩者各自進行MD5加密,加密后的密碼和UUID字符串各自形成兩個字符數(shù)組,將兩個字符數(shù)組中的字符按照位置轉(zhuǎn)換為ASCLL碼并按位進行邏輯操作,將操作后的ASCII碼再轉(zhuǎn)換成字符串,再次通過MD5加密成最終密碼,把截取成字符串的UUID數(shù)據(jù)和最終密碼連接到一塊形成新密碼存入數(shù)據(jù)庫中。2.根據(jù)權(quán)利要求1所述的一種云租戶關(guān)鍵信息的加密方法,其特征是云租戶新密碼存入數(shù)據(jù)庫后,再次進行登錄時,通過用戶名從數(shù)據(jù)庫中提取密碼及截取成字符串的UUID數(shù)據(jù),利用截取成字符串的UUID數(shù)據(jù)與用戶的注冊密碼重復進行生成新密碼的操作,得到驗證密碼,再與數(shù)據(jù)庫中的密碼進行對比驗證。3.根據(jù)權(quán)利要求1或2所述的一種云租戶關(guān)鍵信息的加密方法,其特征是所述將兩個字符數(shù)組中的字符按照位置轉(zhuǎn)換為ASCLL碼并按位進行與或非邏輯操作中的一種操作。4.根據(jù)權(quán)利要求3所述的一種云租戶關(guān)鍵信息的加密方法,其特征是將云租戶注冊同時生成UUID,截取成32bit的字符串。5.根據(jù)權(quán)利要求4所述的一種云租戶關(guān)鍵信息的加密方法,其特征是所述把截取成字符串的UUID數(shù)據(jù)和最終密碼連接到一塊形成64位的新密碼存入數(shù)據(jù)庫中。
【專利摘要】本發(fā)明公開一種云租戶關(guān)鍵信息的加密方法,屬于信息加密管理技術(shù)領(lǐng)域;本發(fā)明采用通過對明文進行MD5加密,同時對UUID進行加密,然后兩者通過ascll碼的方式進行位運算,再通過MD5加密,然后把UUID原始數(shù)據(jù)與密文進行連接從而達到一種密碼強度極高的密文,從而解決在云計算這種開放互聯(lián)的環(huán)境中對托管數(shù)據(jù)進行訪問控制以保障用戶數(shù)據(jù)私密性的問題。
【IPC分類】H04L29/08, H04L9/08, H04L9/06
【公開號】CN105281901
【申請?zhí)枴緾N201510614449
【發(fā)明人】賈偉, 郭鋒
【申請人】浪潮集團有限公司
【公開日】2016年1月27日
【申請日】2015年9月24日