本發(fā)明涉及密碼生成方法技術(shù)領(lǐng)域,具體而言,涉及一種密碼字符串生成的方法及裝置。
背景技術(shù):
目前,隨著觸摸屏技術(shù)在智能終端設(shè)備上的普及,在進(jìn)行商品交易的過程中移動(dòng)支付的方式越來越受到人們的追捧,采用移動(dòng)支付方式進(jìn)行支付活動(dòng)時(shí),往往都需要交易人員輸入密碼或者驗(yàn)證碼;比如當(dāng)人們采用支付寶、微信等支付方式進(jìn)行支付時(shí),打開相關(guān)功能支付相應(yīng)款項(xiàng)時(shí),會(huì)得到一個(gè)密碼字符串,該密碼字符串作為安全驗(yàn)證碼對(duì)整個(gè)支付活動(dòng)的安全性具有至關(guān)重要的作用。
但是現(xiàn)有的生成密碼字符串的方法存在著使用單一的密碼字符串生成算法生成密碼字符串、密碼字符串生成規(guī)則固定簡(jiǎn)單、生成的密碼字符串重復(fù)的概率較高等問題,進(jìn)而導(dǎo)致了其生成的密碼字符串很容易被猜測(cè)到和破解,最終會(huì)威脅支付活動(dòng)的安全以及人們的財(cái)產(chǎn)安全。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例的目的在于提供一種密碼字符串生成的方法及裝置。能夠降低密碼字符串被破解的風(fēng)險(xiǎn),提高密碼字符串的安全性。
第一方面,本發(fā)明實(shí)施例提供了一種密碼字符串生成的方法,包括:
預(yù)先存儲(chǔ)多個(gè)加密算法;
采集待生成密碼字符串的數(shù)據(jù)集合S中的待加密數(shù)據(jù);
應(yīng)用所述加密算法對(duì)所述待加密數(shù)據(jù)進(jìn)行加密運(yùn)算,生成密碼字符串。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第一種可能的實(shí)施方式,其中:
所述應(yīng)用所述加密算法對(duì)所述待加密數(shù)據(jù)進(jìn)行加密運(yùn)算,得到密碼字符串,包括:
隨機(jī)抽取任意一個(gè)所述加密算法,應(yīng)用所述加密算法對(duì)所述待加密數(shù)據(jù)進(jìn)行加密運(yùn)算,得到密碼字符串;
或者,
對(duì)所述加密算法進(jìn)行隨機(jī)組合,得到加密算法組集合,應(yīng)用所述加密算法組集合內(nèi)的任意一組加密算法對(duì)所述待加密數(shù)據(jù)進(jìn)行多重加密運(yùn)算,得到密碼字符串。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第二種可能的實(shí)施方式,其中:
所述預(yù)先存儲(chǔ)多個(gè)加密算法中,所述加密算法包括:
數(shù)據(jù)加密算法DES、三維數(shù)據(jù)加密算法3DES、對(duì)稱分組加密算法RC2、流加密算法簇RC4、對(duì)稱加密算法IDEA、公鑰加密算法RSA、算法DSA、高級(jí)加密標(biāo)準(zhǔn)算法AES、數(shù)字加密算法EIGamal、秘鑰交換算法Deffie-Hellman、新型橢圓線算法ECC、信息摘要算法MD5。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第三種可能的實(shí)施方式,其中:
生成的密碼字符串由數(shù)字0-9,字母A-F組成。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第四種可能的實(shí)施方式,其中:
所述密碼字符串的生成因子包括:時(shí)間戳,保證了每次生成字符串不重復(fù)性。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第五種可能的實(shí)施方式,其中:
所述時(shí)間戳為發(fā)送時(shí)間戳。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第六種可能的實(shí)施方式,其中:
所述方法還包括:
讀取當(dāng)前時(shí)間信息與所述發(fā)送時(shí)間戳信息,實(shí)時(shí)計(jì)算所述密碼字符串的存在時(shí)間;
判斷所述存在時(shí)間是否超過密碼字符串的有效時(shí)間,當(dāng)所述存在時(shí)間超過所述密碼字符串的有效時(shí)間時(shí),則根據(jù)用戶請(qǐng)求重新生成另外一個(gè)密碼字符串。
第二方面,本發(fā)明實(shí)施例還提供一種密碼字符串生成的裝置,包括:
存儲(chǔ)模塊,用于預(yù)先存儲(chǔ)多個(gè)加密算法;
數(shù)據(jù)信息采集模塊,用于采集待生成密碼字符串的數(shù)據(jù)集合S中的待加密數(shù)據(jù);
加密運(yùn)算模塊,用于應(yīng)用所述加密算法對(duì)所述待加密數(shù)據(jù)進(jìn)行加密運(yùn)算,生成密碼字符串。
結(jié)合第二方面,本發(fā)明實(shí)施例提供了第二方面的第一種可能的實(shí)施方式,其中:
所述加密運(yùn)算模塊包括:
隨機(jī)抽取單元,用于隨機(jī)抽取所述存儲(chǔ)模塊中的任意一個(gè)所述加密算法,應(yīng)用所述加密算法對(duì)所述待加密數(shù)據(jù)進(jìn)行加密運(yùn)算,得到密碼字符串;
或者,
隨機(jī)組合單元,用于對(duì)所述存儲(chǔ)模塊中的所述加密算法進(jìn)行隨機(jī)組合,得到加密算法組集合,應(yīng)用所述加密算法組集合內(nèi)的任意一組加密算法對(duì)所述待加密數(shù)據(jù)進(jìn)行多重加密運(yùn)算,得到密碼字符串。
結(jié)合第二方面,本發(fā)明實(shí)施例提供了第二方面的第二種可能的實(shí)施方式,其中:
密碼字符串存在時(shí)間計(jì)算模塊,用于讀取當(dāng)前時(shí)間信息與所述發(fā)送時(shí)間戳信息,實(shí)時(shí)計(jì)算所述密碼字符串的存在時(shí)間;
判斷模塊,用于判斷所述存在時(shí)間是否超過密碼字符串的有效時(shí)間,當(dāng)所述存在時(shí)間超過所述密碼字符串的有效時(shí)間時(shí),則根據(jù)用戶請(qǐng)求重新生成另外一個(gè)密碼字符串。
本發(fā)明實(shí)施例所提供的一種密碼字符串生成的方法,通過預(yù)先存儲(chǔ)多個(gè)加密算法方式,然后利用該預(yù)先存儲(chǔ)的加密算法進(jìn)行對(duì)待生成密碼字符串的數(shù)據(jù)集合中的待加密數(shù)據(jù)進(jìn)行加密運(yùn)算得到密碼字符串,該方法克服了利用單一密碼生成算法進(jìn)行密碼生成時(shí)所存在的密碼生成規(guī)則固定、生成的密碼字符串出現(xiàn)重復(fù)的概率較高,進(jìn)而容易被破解的缺陷;因此,本申請(qǐng)實(shí)例所提供的一種密碼字符串生成的方法及裝置具有能夠降低密碼字符串被破解的風(fēng)險(xiǎn)和提高密碼字符串的安全性的積極效果。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說明如下。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對(duì)范圍的限定,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1示出了本發(fā)明實(shí)施例所提供的一種密碼字符串生成的方法的流程示意圖;
圖2示出了本發(fā)明實(shí)施例所提供的一種密碼字符串生成裝置的結(jié)構(gòu)示意圖。
圖示說明:
S110-S130,一種密碼字符串生成的方法的步驟;
210-存儲(chǔ)模塊;220-數(shù)據(jù)信息采集模塊;230-加密運(yùn)算模塊。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來布置和設(shè)計(jì)。因此,以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例。基于本發(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
目前移動(dòng)支付越來越成為人們生活中常見的交易支付模式,在進(jìn)行移動(dòng)支付時(shí)往往需要生成一個(gè)密碼字符串作為安全驗(yàn)證碼,用戶將該密碼字符串輸入到系統(tǒng)內(nèi)進(jìn)行支付或者賬戶登錄活動(dòng),但是現(xiàn)有的生成該密碼字符串的APP或者應(yīng)用程序中,都是使用單一的密碼生成算法,存在著密碼生成規(guī)則固定且簡(jiǎn)單、生成的密碼字符串重復(fù)的概率較高等缺陷,進(jìn)而導(dǎo)致最終生成的密碼字符串容易被猜到或者被破解,進(jìn)而威脅用戶支付活動(dòng)的安全性;基于此,本申請(qǐng)?zhí)峁┑囊环N密碼字符串生成的方法及裝置,可以有效地降低密碼字符串被破解的風(fēng)險(xiǎn),提高密碼字符串的安全性。
為便于對(duì)本實(shí)施例進(jìn)行理解,首先對(duì)本發(fā)明實(shí)施例所公開的一種密碼字符串生成的方法進(jìn)行詳細(xì)介紹。
如圖1所示的實(shí)施例,本實(shí)施例中給出了一種密碼字符串生成的方法,該方法包括如下步驟:
S110、預(yù)先存儲(chǔ)多個(gè)加密算法;
該多個(gè)加密算法包括但不限于:數(shù)據(jù)加密算法DES、三維數(shù)據(jù)加密算法3DES、對(duì)稱分組加密算法RC2、流加密算法簇RC4、對(duì)稱加密算法IDEA、公鑰加密算法RSA、算法DSA、高級(jí)加密標(biāo)準(zhǔn)算法AES、數(shù)字加密算法EIGamal、秘鑰交換算法Deffie-Hellman、新型橢圓線算法ECC、信息摘要算法MD5;
S120、采集待生成密碼字符串的數(shù)據(jù)集合S中的待加密數(shù)據(jù);
上述待生成密碼字符串的數(shù)據(jù)集合S中的數(shù)據(jù)包括:發(fā)出密碼字符串生成請(qǐng)求的設(shè)備固定的MAC地址、用戶數(shù)據(jù)、時(shí)間戳、隨機(jī)數(shù)等。
S130、應(yīng)用上述加密算法對(duì)待加密數(shù)據(jù)進(jìn)行加密運(yùn)算,生成密碼字符串。
其中,作為優(yōu)選地,上述應(yīng)用加密算法對(duì)待加密數(shù)據(jù)進(jìn)行加密運(yùn)算,生成密碼字符串的過程可以通過以下方式完成:
隨機(jī)抽取上述多個(gè)加密算法中的任意一個(gè)加密算法,應(yīng)用該隨機(jī)抽取到的加密算法對(duì)上述待加密數(shù)據(jù)進(jìn)行加密運(yùn)算,得到密碼字符串;或者,對(duì)上述多個(gè)加密算法進(jìn)行隨機(jī)組合,比如兩兩組合,得到加密算法組集合,應(yīng)用組合后得到的加密算法組集合內(nèi)的任意一組的加密算法對(duì)待加密數(shù)據(jù)進(jìn)行多重加密運(yùn)算,得到密碼字符串。
本實(shí)施例中由于存儲(chǔ)有多種加密算法,在對(duì)待加密數(shù)據(jù)進(jìn)行加密時(shí)可以隨機(jī)選用其中任意一個(gè)加密算法進(jìn)行加密運(yùn)算,進(jìn)而增加了密碼字符串生成的隨機(jī)性,生成規(guī)律的復(fù)雜性,避免人們長(zhǎng)期使用過程中總結(jié)得到密碼字符串生成的規(guī)律,進(jìn)而降低了密碼字符串被破解的概率。
利用本實(shí)施例中所提供的一種密碼字符串生成的方法所生成的密碼字符串,生成的密碼字符串由數(shù)字0-9,字母A-F組成,其長(zhǎng)度最低是8位,可生成的字符串種類有多達(dá)168個(gè)。
進(jìn)一步的,采用將多個(gè)加密算法進(jìn)行隨機(jī)組合得到加密算法組集合,然后從加密算法組集合進(jìn)行隨機(jī)抽取任意一組加密算法對(duì)待加密數(shù)據(jù)進(jìn)行多重加密的方式,進(jìn)一步的增加了密碼字符串生成的隨機(jī)性,假設(shè)預(yù)先存儲(chǔ)由12套加密算法,以兩兩組合為例則會(huì)有種組合方式,因此相對(duì)于采用單一的密碼字符串生成算法生成密碼字符串的方式大大提高了密碼字符串生成的隨機(jī)性,并且可以大大降低生成的密碼字符串重復(fù)的概率,進(jìn)而有效地提高密碼字符串的安全性。
上述密碼字符串的生成因子包括:時(shí)間戳,保證了每次生成字符串不重復(fù)性。
在某一具體實(shí)施例中,上述的密碼字符串生成的方法在生成密碼字符串以后,還可對(duì)該密碼字符串按指定長(zhǎng)度進(jìn)行截取得到最終的密碼字符串,進(jìn)行長(zhǎng)度截取后的密碼字符串會(huì)具有特定的位數(shù),此處我們也可以提前設(shè)置有多個(gè)指定的長(zhǎng)度,進(jìn)而使最終的密碼字符串具有不同的長(zhǎng)度,進(jìn)一步增加了生成的最終的密碼字符串的多樣性。
進(jìn)一步的,在某一具體實(shí)施例中,上述得到最終的密碼字符串以后,在該密碼字符串上生成發(fā)送時(shí)間戳,此處的時(shí)間戳也是一個(gè)字符序列,用于唯一地標(biāo)識(shí)發(fā)送時(shí)刻的時(shí)間,設(shè)置有時(shí)間戳以后,因?yàn)橛袝r(shí)間因子,因此最終生成的密碼字符串能夠做到永不重復(fù)。
進(jìn)一步的,在某一具體實(shí)施例中,在密碼字符串上生成發(fā)送時(shí)間戳以后,判斷所述的發(fā)送時(shí)間戳的整數(shù)值是否為0,如果不為0,則對(duì)生成的密碼字符串進(jìn)行壓縮處理,具體的,該壓縮處理包括:提取該發(fā)送時(shí)間戳的整數(shù)值,將該整數(shù)值與預(yù)設(shè)的密碼字符串的長(zhǎng)度進(jìn)行相除,得到相除運(yùn)算后得到的整數(shù)和余數(shù),記錄該整數(shù)和余數(shù),再提取所述余數(shù)對(duì)應(yīng)的所述密碼字符串的字符,記錄該字符,并對(duì)相除后得到的整數(shù)和預(yù)設(shè)的字符串的長(zhǎng)度重復(fù)進(jìn)行相除工作,直到最后得到的整數(shù)為0,生成以每次記錄的所述字符以序列形式組合而成的壓縮字符串,采用此種方式可以進(jìn)一步增加密碼字符串被破解的難度;在具體使用過程中,可以在終端完成對(duì)密碼字符串的解壓縮,由終端用戶將解壓縮后的密碼字符串輸入進(jìn)行驗(yàn)證。
進(jìn)一步的,密碼字符串中上述的時(shí)間戳為發(fā)送時(shí)間戳,用以標(biāo)識(shí)發(fā)送時(shí)間的信息,可以根據(jù)實(shí)時(shí)讀取當(dāng)前時(shí)間信息與上述的發(fā)送時(shí)間戳信息,實(shí)時(shí)計(jì)算出該密碼字符串的存在時(shí)間,并判斷該存在時(shí)間是否超過密碼字符串的有效時(shí)間,當(dāng)該存在時(shí)間超過密碼字符串的有效時(shí)間時(shí),則根據(jù)用戶請(qǐng)求重新生成另外一個(gè)密碼字符串。
上述實(shí)施例中,設(shè)置使生成的密碼字符串只在特定的時(shí)間內(nèi)有效,保證了在某些情況下,比如用戶在得到某一密碼字符串以后因某些原因而停止操作以后,該密碼字符串如果被泄露給他人所帶來因密碼字符串被被盜用而威脅支付安全的風(fēng)險(xiǎn)。
如圖2所示的實(shí)施例,本實(shí)施例中提供了一種密碼字符串生成的裝置,該裝置,包括:
存儲(chǔ)模塊210,用于預(yù)先存儲(chǔ)多個(gè)加密算法;
該加密算法包括但不限于:數(shù)據(jù)加密算法DES、三維數(shù)據(jù)加密算法3DES、對(duì)稱分組加密算法RC2、流加密算法簇RC4、對(duì)稱加密算法IDEA、公鑰加密算法RSA、算法DSA、高級(jí)加密標(biāo)準(zhǔn)算法AES、數(shù)字加密算法EIGamal、秘鑰交換算法Deffie-Hellman、新型橢圓線算法ECC、信息摘要算法MD5;
數(shù)據(jù)信息采集模塊220,用于采集待生成密碼字符串的數(shù)據(jù)集合S中的待加密數(shù)據(jù);
加密運(yùn)算模塊230,用于應(yīng)用加密算法對(duì)待加密數(shù)據(jù)進(jìn)行加密運(yùn)算,生成密碼字符串。
進(jìn)一步的,上述的加密運(yùn)算模塊230包括:
隨機(jī)抽取單元,用于隨機(jī)抽取上述存儲(chǔ)模塊210中的任意一個(gè)加密算法,應(yīng)用該加密算法對(duì)待加密數(shù)據(jù)進(jìn)行加密運(yùn)算,得到密碼字符串;
或者,
隨機(jī)組合單元,用于對(duì)上述存儲(chǔ)模塊210中的多個(gè)加密算法進(jìn)行隨機(jī)組合,得到加密算法組集合,應(yīng)用該加密算法組集合內(nèi)的任意一組加密算法對(duì)待加密數(shù)據(jù)進(jìn)行多重加密運(yùn)算,得到密碼字符串。
作為優(yōu)選的,在某一具體實(shí)施例中,上述的一種密碼字符串生成的裝置,還包括:
密碼字符串存在時(shí)間計(jì)算模塊,用于讀取當(dāng)前時(shí)間信息與發(fā)送時(shí)間戳信息,實(shí)時(shí)計(jì)算所述密碼字符串的存在時(shí)間;
判斷模塊,用于判斷上述存在時(shí)間是否超過密碼字符串的有效時(shí)間,當(dāng)該存在時(shí)間超過所述密碼字符串的有效時(shí)間時(shí),則根據(jù)用戶請(qǐng)求重新生成另外一個(gè)密碼字符串。
需要說明的是,本發(fā)明實(shí)施例中所提供的一種密碼字符串生成的方法及裝置的計(jì)算機(jī)程序產(chǎn)品,包括存儲(chǔ)了程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述程序代碼包括的指令可用于執(zhí)行前面方法實(shí)施例中所述的方法,具體實(shí)現(xiàn)可參見方法實(shí)施例,在此不再贅述。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述裝置的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。
所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。