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