一種既安全又方便使用的Spark數(shù)據(jù)庫電子密碼鎖及其操作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機網(wǎng)絡(luò)安全領(lǐng)域,尤其涉及一種既安全又方便使用的Spark數(shù)據(jù)庫電子密碼鎖及其操作方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)和物聯(lián)網(wǎng)的飛速發(fā)展,產(chǎn)生的數(shù)據(jù)量越來越大,對這些大量數(shù)據(jù)的分析而產(chǎn)生的價值越來越重要,對于大量數(shù)據(jù)的分析的各種需求越來越多。
[0003]現(xiàn)有技術(shù)中,對于大量的數(shù)據(jù)處理,Spark成為主要的數(shù)據(jù)處理平臺,應(yīng)用越來越多,用戶對于數(shù)據(jù)庫的安全性也要求得越來越高。特別是對于數(shù)據(jù)庫中的內(nèi)容,用戶不希望讓無關(guān)的人員知曉。因此,Spark數(shù)據(jù)庫開發(fā)商為用戶建立了設(shè)置用戶名和密碼的機制,也就是說,使用Spark數(shù)據(jù)庫的人員必須先啟動Spark應(yīng)用程序建立自己的用戶名和密碼,該用戶名和密碼是存儲在Spark數(shù)據(jù)庫中的。以后,要進入Spark數(shù)據(jù)庫,只要在啟動Spark數(shù)據(jù)庫的過程中,以自己的用戶名和密碼登錄Spark數(shù)據(jù)庫,Spark數(shù)據(jù)庫的啟動程序就會將登錄時的用戶名和密碼與Spark數(shù)據(jù)庫中的用戶名和密碼相比對,如果登錄時的用戶名與Spark數(shù)據(jù)庫中的用戶名相同,同時,登錄時的密碼與Spark數(shù)據(jù)庫中的密碼相同,貝IjSpark數(shù)據(jù)庫才被打開,否則,Spark數(shù)據(jù)庫不能被打開,以起到對Spark數(shù)據(jù)庫中的數(shù)據(jù)安全保密的作用。但是,用戶每次啟動Spark數(shù)據(jù)庫時都要輸入用戶名和密碼才能打開數(shù)據(jù)庫,經(jīng)常是因某一個字符輸入錯誤而打不開數(shù)據(jù)庫,給用戶帶來極大的煩惱。為此,Spark數(shù)據(jù)庫開發(fā)商還為用戶提供了在電腦中存儲用戶名和密碼的機制。如圖1和圖2所示,用戶可以將自己的用戶名和密碼保存在Spark應(yīng)用程序的配置文件中,這樣,當啟動Spark數(shù)據(jù)庫時,啟動程序直接將配置文件中的用戶名和密碼與Spark數(shù)據(jù)庫中的用戶名和密碼相比對,如果比對成功就打開Spark數(shù)據(jù)庫,否則,不能打開Spark數(shù)據(jù)庫。由于這樣的密碼沒有經(jīng)過變換加密,而是直接地記錄在配置文件中,因此,當無關(guān)的人員一旦得到配置文件中的用戶名和密碼時,就可以輕而一舉地在其它電腦上啟動Spark數(shù)據(jù)庫,通過在配置文件中找到的用戶名和密碼登錄打開Spark數(shù)據(jù)庫,竊取Spark數(shù)據(jù)庫中的重要數(shù)據(jù)。這樣,無法實現(xiàn)既安全又方便使用的Spark數(shù)據(jù)庫。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的一個技術(shù)問題是提供了一種既安全又方便使用的Spark數(shù)據(jù)庫電子密碼鎖,將用戶名和該密碼設(shè)置在配置文件中,可以方便地打開Spark數(shù)據(jù)庫,即使被無關(guān)人員獲取到用戶名和該密碼,也無法輕而一舉地在其它電腦上啟動Spark數(shù)據(jù)庫,通過在配置文件中找到的用戶名和該密碼登錄打開Spark數(shù)據(jù)庫,竊取Spark數(shù)據(jù)庫中的重要數(shù)據(jù),因此,該密碼可以既安全又方便打開Spark數(shù)據(jù)庫。
[0005]本發(fā)明要解決的另一個技術(shù)問題是提供一種既安全又方便使用的Spark數(shù)據(jù)庫電子密碼鎖的操作方法,用該方法得到的密碼設(shè)置在配置文件中,可以方便地打開Spark數(shù)據(jù)庫,即使被無關(guān)人員獲取到用戶名和該密碼,也無法輕而一舉地在其它電腦上啟動Spark數(shù)據(jù)庫,通過在配置文件中找到的用戶名和該密碼登錄打開Spark數(shù)據(jù)庫,竊取Spark數(shù)據(jù)庫中的重要數(shù)據(jù),因此,該密碼可以既安全又方便打開Spark數(shù)據(jù)庫。
[0006]就產(chǎn)品而言,為了解決上述一個技術(shù)問題,本發(fā)明提供了既安全又方便使用的Spark數(shù)據(jù)庫電子密碼鎖,用戶名和密碼設(shè)置在Spark數(shù)據(jù)庫中,并設(shè)置在Spark應(yīng)用程序的配置文件中,設(shè)置在Spark應(yīng)用程序的配置文件中的密碼是通過將設(shè)置在Spark數(shù)據(jù)庫中的密碼經(jīng)過變換加密得到的。
[0007]所述變換加密是大小寫英文字母相互變化的變換加密,或者,英文字母和數(shù)字加減位移數(shù)的變換加密,或者,將英文字母和數(shù)字的ASCII編碼變換為base64編碼的變換加密,或者,上述兩種變換加密的組合,或者,上述兩種以上變換加密的組合。
[0008]所述大小寫英文字母相互變化的變換加密是讀取Spark數(shù)據(jù)庫的密碼后,將小寫英文字母變?yōu)榇髮懹⑽淖帜?,將大寫英文字母變?yōu)樾懹⑽淖帜福?br>[0009]所述英文字母和數(shù)字加減位移數(shù)的變換加密是以獲取密碼的位數(shù)作為位移數(shù),對密碼做位移,如果密碼位數(shù)為偶數(shù)則做加法位移,如果密碼位數(shù)為奇數(shù)則做減法位移;
[0010]所述加法位移變換公式為:
[0011]大寫字母變換公式:65+(字母ASCII值-65+位移數(shù))/26;
[0012]小寫字母變換公式:97+(字母ASCII值-97+位移數(shù))/26;
[0013]數(shù)字變換公式:48+ (數(shù)字ASCII值-48+位移數(shù))/10;
[0014]所述減法位移變換公式為:
[0015]大寫字母變換公式:65+(字母ASCII值+26-位移數(shù)-65)/26;
[0016]小寫字母變換公式:97+(字母ASCII值+26-位移數(shù)-97)/26 ;
[0017]數(shù)字變換公式:48+ (數(shù)字ASCII值+10-位移數(shù)-48)/10;
[0018]所述將英文字母和數(shù)字的ASCII編碼變換為base64編碼的變換加密是先將Spark數(shù)據(jù)庫密碼中各個字符的八位二進制ASCII碼從左到右依次排列,再從左到右或從右到左以每6位的分組,之后在每6位的前面補兩個O,形成8位一個字節(jié)的形式,按照base64編碼表得出相應(yīng)的字符;如果剩下的字符不足3個八位二進制字節(jié),則用O在其后填充,輸出字符使
/Tjο
[0019]所述base64編碼表是標準base64編碼表,或者,所述base64編碼表是自字義base64編碼表;
[0020]所述標準base64編碼表是依次將A-Z、a-z、0_9、+、/排序,并按0-63進行編碼;
[0021 ] 所述自定義base64編碼表是依次將+、/、A_Z、a_z、0_9排序,并按0_63進行編碼;或者,
[0022]所述自定義base64編碼表是依次將Z-A、a-z、0_9、+、/排序,并按0_63進行編碼;或者,
[0023]所述標準base64編碼表是先將A-Z、a-z、0-9、+、/排序打亂順序后,再進行排序,然后,按0_63進行編碼。
[0024]本發(fā)明既安全又方便使用的Spark數(shù)據(jù)庫電子密碼鎖與現(xiàn)有技術(shù)相比具有以下有?效果。
[0025]1、本技術(shù)方案由于采用了設(shè)置在Spark應(yīng)用程序的配置文件中的密碼是通過將設(shè)置在Spark數(shù)據(jù)庫中的密碼經(jīng)過變換加密得到的技術(shù)手段,所以,可以方便地打開Spark數(shù)據(jù)庫,即使被無關(guān)人員獲取到用戶名和該密碼,也無法輕而一舉地在其它電腦上啟動Spark數(shù)據(jù)庫,通過在配置文件中找到的用戶名和該密碼登錄打開Spark數(shù)據(jù)庫,竊取Spark數(shù)據(jù)庫中的重要數(shù)據(jù),因此,該密碼可以既安全又方便打開Spark數(shù)據(jù)庫。
[0026]2、本技術(shù)方案由于采用了所述變換加密是大小寫英文字母相互變化的變換加密,或者,英文字母和數(shù)字加減位移數(shù)的變換加密,或者,將英文字母和數(shù)字的ASCII編碼變換為base64編碼的變換加密,或者,上述兩種變換加密的組合,或者,上述兩種以上變換加密的組合的技術(shù)手段,所以,可以采用多種加密的方式對Spark數(shù)據(jù)庫密碼進行變換加密,大大增加了破解密碼的難度。
[0027]3、本技術(shù)方案由于采用了所述大小寫英文字母相互變化的變換加密是讀取Spark數(shù)據(jù)庫的密碼后,將小寫英文字母變?yōu)榇髮懹⑽淖帜?,將大寫英文字母變?yōu)樾懹⑽淖帜福?br>[0028]所述英文字母和數(shù)字加減位移數(shù)的變換加密是以獲取密碼的位數(shù)作為位移數(shù),對密碼做位移,如果密碼位數(shù)為偶數(shù)則做加法位移,如果密碼位數(shù)為奇數(shù)則做減法位移;
[0029]所述加法位移變換公式為:
[0030]大寫字母變換公式:65+(字母ASCII值-65+位移數(shù))/26;
[0031]小寫字母變換公式:97+(字母ASCII值-97+位移數(shù))/26;
[0032]數(shù)字變換公式:48+ (數(shù)字ASCII值-48+位移數(shù))/10;
[0033]所述減法位移變換公式為:
[0034]大寫字母變換公式:65+(字母ASCII值+26-位移數(shù)-65)/26;
[0035]小寫字母變換公式:97+(字母ASCII值+26-位移數(shù)-97)/26 ;
[0036]數(shù)字變換公式:48+(數(shù)字ASCII值+10-位移數(shù)-48)/10;
[0037]所述將英文字母和數(shù)字的ASCII編碼變換為base64編碼的變換加密是先將Spark數(shù)據(jù)庫密碼中各個字符的八位二進制ASCII碼從左到右依次排列,再從左到右或從右到左以每6位的分組,之后在每6位的前面補兩個O,形成8