本發(fā)明涉及互聯(lián)網(wǎng)應(yīng)用技術(shù)領(lǐng)域,特別涉及一種SN碼的加密方法及裝置。
背景技術(shù):
SN碼是Serial Number的縮寫,有時(shí)也叫SerialNo,也就是產(chǎn)品序列號(hào),產(chǎn)品序列是為了驗(yàn)證“產(chǎn)品的合法身份”而引入的一個(gè)概念,它是用來保障用戶的正版權(quán)益,享受合法服務(wù)的,一套正版的產(chǎn)品只對(duì)應(yīng)一組產(chǎn)品序列號(hào)。SN碼又稱:機(jī)器碼、認(rèn)證碼、注冊(cè)申請(qǐng)碼等。為了提高安全性,需要對(duì)SN碼進(jìn)行加密,亟待解決這一技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種SN碼的加密方法及裝置,用以對(duì)SN碼進(jìn)行加密,實(shí)現(xiàn)安全性的目的。
本發(fā)明提供一種SN碼的加密方法,包括:
獲取待加密SN碼,確定所述待加密SN碼的長(zhǎng)度,其中,所述待加密SN碼的各個(gè)位對(duì)應(yīng)編號(hào);
針對(duì)所述待加密SN碼的任意當(dāng)前位,確定所述當(dāng)前位對(duì)應(yīng)的預(yù)設(shè)位;
將所述待加密SN碼的長(zhǎng)度減去所述當(dāng)前位的編號(hào),得到的計(jì)算值作為所述預(yù)設(shè)位的值;
將所述計(jì)算值作為序號(hào),從預(yù)設(shè)的字符串中獲取所述計(jì)算值對(duì)應(yīng)的位的字符,并將該字符作為所述當(dāng)前位的值。
在本發(fā)明一實(shí)施例中,所述待加密SN碼為12位,且所述待加密SN碼的各個(gè)位的編號(hào)為十進(jìn)制。
在本發(fā)明一實(shí)施例中,針對(duì)所述待加密SN碼的任意當(dāng)前位,確定所述當(dāng)前位對(duì)應(yīng)的預(yù)設(shè)位,包括:
當(dāng)所述當(dāng)前位為第k位,則所述當(dāng)前位對(duì)應(yīng)的預(yù)設(shè)位為13-k位。
在本發(fā)明一實(shí)施例中,將所述計(jì)算值作為序號(hào),從預(yù)設(shè)的字符串中獲取所述計(jì)算值對(duì)應(yīng)的位的字符,包括:
對(duì)所述預(yù)設(shè)的字符串的字符的前后位置進(jìn)行變換,得到變換后的字符串;
將所述計(jì)算值作為序號(hào),從所述變換后的字符串中獲取所述計(jì)算值對(duì)應(yīng)的位的字符。
在本發(fā)明一實(shí)施例中,對(duì)所述預(yù)設(shè)的字符串的字符的前后位置進(jìn)行變換,包括:
基于所述當(dāng)前位的編號(hào),確定變換位數(shù);
根據(jù)所述變換位數(shù),對(duì)所述預(yù)設(shè)的字符串的字符的前后位置進(jìn)行變換。
在本發(fā)明一實(shí)施例中,基于所述當(dāng)前位的編號(hào),確定變換位數(shù),包括:
將所述當(dāng)前位的編號(hào)的平方,加上2倍的所述當(dāng)前位的編號(hào),再加上數(shù)值5,得到的值確定為所述變換位數(shù)。
在本發(fā)明一實(shí)施例中,根據(jù)所述變換位數(shù),對(duì)所述預(yù)設(shè)的字符串的字符的前后位置進(jìn)行變換,包括:
從所述預(yù)設(shè)的字符串的開始位置確定所述變換位數(shù)的子字符串;
將確定的所述子字符串調(diào)整到所述預(yù)設(shè)的字符串的末尾位置處。
在本發(fā)明一實(shí)施例中,所述預(yù)設(shè)的字符串是16位三十六進(jìn)制的一組字符串。
本發(fā)明還提供一種SN碼的加密裝置,包括:
長(zhǎng)度確定模塊,用于獲取待加密SN碼,確定所述待加密SN碼的長(zhǎng)度,其中,所述待加密SN碼的各個(gè)位對(duì)應(yīng)編號(hào);
預(yù)設(shè)位確定模塊,用于針對(duì)所述待加密SN碼的任意當(dāng)前位,確定所述當(dāng)前位對(duì)應(yīng)的預(yù)設(shè)位;
第一加密模塊,用于將所述待加密SN碼的長(zhǎng)度減去所述當(dāng)前位的編號(hào),得到的計(jì)算值作為所述預(yù)設(shè)位的值;
第二加密模塊,用于將所述計(jì)算值作為序號(hào),從預(yù)設(shè)的字符串中獲取所述計(jì)算值對(duì)應(yīng)的位的字符,并將該字符作為所述當(dāng)前位的值。
在本發(fā)明一實(shí)施例中,所述待加密SN碼為12位,且所述待加密SN碼的各個(gè)位的編號(hào)為十進(jìn)制。
在本發(fā)明一實(shí)施例中,所述預(yù)設(shè)位確定模塊還用于:
當(dāng)所述當(dāng)前位為第k位,則所述當(dāng)前位對(duì)應(yīng)的預(yù)設(shè)位為13-k位。
在本發(fā)明一實(shí)施例中,所述第二加密模塊還用于:
對(duì)所述預(yù)設(shè)的字符串的字符的前后位置進(jìn)行變換,得到變換后的字符串;
將所述計(jì)算值作為序號(hào),從所述變換后的字符串中獲取所述計(jì)算值對(duì)應(yīng)的位的字符。
在本發(fā)明一實(shí)施例中,所述第二加密模塊還用于:
基于所述當(dāng)前位的編號(hào),確定變換位數(shù);
根據(jù)所述變換位數(shù),對(duì)所述預(yù)設(shè)的字符串的字符的前后位置進(jìn)行變換。
在本發(fā)明一實(shí)施例中,所述第二加密模塊還用于:
將所述當(dāng)前位的編號(hào)的平方,加上2倍的所述當(dāng)前位的編號(hào),再加上數(shù)值5,得到的值確定為所述變換位數(shù)。
在本發(fā)明一實(shí)施例中,所述第二加密模塊還用于:
從所述預(yù)設(shè)的字符串的開始位置確定所述變換位數(shù)的子字符串;
將確定的所述子字符串調(diào)整到所述預(yù)設(shè)的字符串的末尾位置處。
在本發(fā)明一實(shí)施例中,所述預(yù)設(shè)的字符串是16位三十六進(jìn)制的一組字符串。
在本發(fā)明實(shí)施例中,獲取待加密SN碼,確定待加密SN碼的長(zhǎng)度,其中,待加密SN碼的各個(gè)位對(duì)應(yīng)編號(hào);針對(duì)待加密SN碼的任意當(dāng)前位,確定當(dāng)前位對(duì)應(yīng)的預(yù)設(shè)位;隨后,將待加密SN碼的長(zhǎng)度減去當(dāng)前位的編號(hào),得到的計(jì)算值作為預(yù)設(shè)位的值;之后,將計(jì)算值作為序號(hào),從預(yù)設(shè)的字符串中獲取計(jì)算值對(duì)應(yīng)的位的字符,并將該字符作為當(dāng)前位的值。由此可見,本發(fā)明實(shí)施例能夠?qū)N碼進(jìn)行加密,實(shí)現(xiàn)安全性的目的。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
下面通過附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
附圖說明
附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
圖1所示為本發(fā)明一實(shí)施例中SN碼的加密方法的流程圖;
圖2所示為本發(fā)明一實(shí)施例中SN碼的解密方法的流程圖;以及
圖3所示為本發(fā)明一實(shí)施例中SN碼的加密裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示為本發(fā)明一實(shí)施例中SN碼的加密方法的流程圖,該方法可以包括以下步驟S11-S14。
步驟S11,獲取待加密SN碼,確定待加密SN碼的長(zhǎng)度,其中,待加密SN碼的各個(gè)位對(duì)應(yīng)編號(hào)。
在該步驟中,待加密SN碼可以為12位,且待加密SN碼的各個(gè)位的編號(hào)為十進(jìn)制。
步驟S12,針對(duì)待加密SN碼的任意當(dāng)前位,確定當(dāng)前位對(duì)應(yīng)的預(yù)設(shè)位。
步驟S13,將待加密SN碼的長(zhǎng)度減去當(dāng)前位的編號(hào),得到的計(jì)算值作為預(yù)設(shè)位的值。
步驟S14,將計(jì)算值作為序號(hào),從預(yù)設(shè)的字符串中獲取計(jì)算值對(duì)應(yīng)的位的字符,并將該字符作為當(dāng)前位的值。
在該步驟中,預(yù)設(shè)的字符串可以是16位三十六進(jìn)制的一組字符串。三十六進(jìn)制,是數(shù)據(jù)的一種表示方法,它由0-9,A-Z組成,字母不區(qū)分大小寫。
在本發(fā)明實(shí)施例中,獲取待加密SN碼,確定待加密SN碼的長(zhǎng)度,其中,待加密SN碼的各個(gè)位對(duì)應(yīng)編號(hào);針對(duì)待加密SN碼的任意當(dāng)前位,確定當(dāng)前位對(duì)應(yīng)的預(yù)設(shè)位;隨后,將待加密SN碼的長(zhǎng)度減去當(dāng)前位的編號(hào),得到的計(jì)算值作為預(yù)設(shè)位的值;之后,將計(jì)算值作為序號(hào),從預(yù)設(shè)的字符串中獲取計(jì)算值對(duì)應(yīng)的位的字符,并將該字符作為當(dāng)前位的值。由此可見,本發(fā)明實(shí)施例能夠?qū)N碼進(jìn)行加密,實(shí)現(xiàn)安全性的目的。
在本發(fā)明的可選實(shí)施例中,上文步驟S12中如果當(dāng)前位為第k位,則當(dāng)前位對(duì)應(yīng)的預(yù)設(shè)位為13-k位。例如,待加密SN碼為12位,如果當(dāng)前位為第1位,則當(dāng)前位對(duì)應(yīng)的預(yù)設(shè)位為第12位,即待加密SN碼的最后一位;如果當(dāng)前位為第2位,則當(dāng)前位對(duì)應(yīng)的預(yù)設(shè)位為第11位,即待加密SN碼的倒數(shù)第二位,等等。
在上文步驟S13和步驟S14中,針對(duì)當(dāng)前位是第一位,假設(shè)第一位的編號(hào)為0,用長(zhǎng)度減當(dāng)前位的編號(hào),即,12-0=12,得到最后一位的值,x=最后一位的值。隨后,將x的值作為序號(hào),從預(yù)設(shè)的字符串(即,Key)中獲得第x位的字符,將該字符作為第一位的值。
同樣地,針對(duì)當(dāng)前位是第二位,假設(shè)第二位的編號(hào)為1,用長(zhǎng)度減當(dāng)前位的編號(hào),即,12-1=11,得到倒數(shù)第二位的值,x=倒數(shù)第二位的值。隨后,將x的值作為序號(hào),從Key中獲得第x位的字符,將該字符作為第二位的值。
針對(duì)當(dāng)前位是第三位,重復(fù)上述過程,直至最后一位。
上文步驟S14中,將計(jì)算值作為序號(hào),從預(yù)設(shè)的字符串中獲取計(jì)算值對(duì)應(yīng)的位的字符,本發(fā)明實(shí)施例提供了一種可選的方案,該方案包括以下步驟A1-A2。
步驟A1,對(duì)預(yù)設(shè)的字符串的字符的前后位置進(jìn)行變換,得到變換后的字符串。
在該步驟中,在從Key中獲取第x位的字符之前先要對(duì)Key做一次變換處理,可以基于當(dāng)前位的編號(hào),確定變換位數(shù);進(jìn)而,根據(jù)變換位數(shù),對(duì)預(yù)設(shè)的字符串的字符的前后位置進(jìn)行變換。
具體地,將當(dāng)前位的編號(hào)的平方,加上2倍的當(dāng)前位的編號(hào),再加上數(shù)值5,得到的值確定為變換位數(shù),即,變換方程是i的平方+2乘以i+5,其中,i為當(dāng)前位的編號(hào)。進(jìn)而,從預(yù)設(shè)的字符串的開始位置確定變換位數(shù)的子字符串;將確定的子字符串調(diào)整到預(yù)設(shè)的字符串的末尾位置處。在本發(fā)明的可選實(shí)施例中,i也可以為步驟S13中計(jì)算得到的計(jì)算值。
例如,Key為abcdefg012345678,獲取第2位字符過程如下:首先1*1+2*1+5=8,那么Key經(jīng)過變換成為12345678abcdefg0(把前面8位旋轉(zhuǎn)到后面),那么第2位就是2。
步驟A2,將計(jì)算值作為序號(hào),從變換后的字符串中獲取計(jì)算值對(duì)應(yīng)的位的字符。
相應(yīng)地,SN碼的解密方法是上述的逆過程。如圖2所示為本發(fā)明一實(shí)施例中SN碼的解密方法的流程圖,該方法可以包括以下步驟S21-S23。
步驟S21,獲取待解密SN碼,確定待解密SN碼的長(zhǎng)度,其中,待解密SN碼的各個(gè)位對(duì)應(yīng)值。
步驟S22,針對(duì)待解密SN碼的任意當(dāng)前位,根據(jù)當(dāng)前位的值,確定在預(yù)設(shè)的字符串中對(duì)應(yīng)字符的序號(hào)或位。
步驟S23,將待解密SN碼的長(zhǎng)度減去確定的序號(hào)或位,作為當(dāng)前位的編號(hào)。
需要說明的是,在實(shí)際應(yīng)用中,上述所有可選實(shí)施方式可以采用結(jié)合的方式任意組合,形成本發(fā)明的可選實(shí)施例,在此不再一一贅述。
對(duì)應(yīng)于上述實(shí)施例中的SN碼的加密方法,本發(fā)明還提供一種SN碼的加密裝置。如圖3所示為本發(fā)明一實(shí)施例中SN碼的加密裝置的結(jié)構(gòu)示意圖,包括:
長(zhǎng)度確定模塊31,用于獲取待加密SN碼,確定所述待加密SN碼的長(zhǎng)度,其中,所述待加密SN碼的各個(gè)位對(duì)應(yīng)編號(hào);
預(yù)設(shè)位確定模塊32,用于針對(duì)所述待加密SN碼的任意當(dāng)前位,確定所述當(dāng)前位對(duì)應(yīng)的預(yù)設(shè)位;
第一加密模塊33,用于將所述待加密SN碼的長(zhǎng)度減去所述當(dāng)前位的編號(hào),得到的計(jì)算值作為所述預(yù)設(shè)位的值;
第二加密模塊34,用于將所述計(jì)算值作為序號(hào),從預(yù)設(shè)的字符串中獲取所述計(jì)算值對(duì)應(yīng)的位的字符,并將該字符作為所述當(dāng)前位的值。
在本發(fā)明一實(shí)施例中,所述待加密SN碼為12位,且所述待加密SN碼的各個(gè)位的編號(hào)為十進(jìn)制。
在本發(fā)明一實(shí)施例中,所述預(yù)設(shè)位確定模塊32還用于:
當(dāng)所述當(dāng)前位為第k位,則所述當(dāng)前位對(duì)應(yīng)的預(yù)設(shè)位為13-k位。
在本發(fā)明一實(shí)施例中,所述第二加密模塊34還用于:
對(duì)所述預(yù)設(shè)的字符串的字符的前后位置進(jìn)行變換,得到變換后的字符串;
將所述計(jì)算值作為序號(hào),從所述變換后的字符串中獲取所述計(jì)算值對(duì)應(yīng)的位的字符。
在本發(fā)明一實(shí)施例中,所述第二加密模塊34還用于:
基于所述當(dāng)前位的編號(hào),確定變換位數(shù);
根據(jù)所述變換位數(shù),對(duì)所述預(yù)設(shè)的字符串的字符的前后位置進(jìn)行變換。
在本發(fā)明一實(shí)施例中,所述第二加密模塊34還用于:
將所述當(dāng)前位的編號(hào)的平方,加上2倍的所述當(dāng)前位的編號(hào),再加上數(shù)值5,得到的值確定為所述變換位數(shù)。
在本發(fā)明一實(shí)施例中,所述第二加密模塊34還用于:
從所述預(yù)設(shè)的字符串的開始位置確定所述變換位數(shù)的子字符串;
將確定的所述子字符串調(diào)整到所述預(yù)設(shè)的字符串的末尾位置處。
在本發(fā)明一實(shí)施例中,所述預(yù)設(shè)的字符串是16位三十六進(jìn)制的一組字符串。
本發(fā)明實(shí)施例的上述裝置:獲取待加密SN碼,確定待加密SN碼的長(zhǎng)度,其中,待加密SN碼的各個(gè)位對(duì)應(yīng)編號(hào);針對(duì)待加密SN碼的任意當(dāng)前位,確定當(dāng)前位對(duì)應(yīng)的預(yù)設(shè)位;隨后,將待加密SN碼的長(zhǎng)度減去當(dāng)前位的編號(hào),得到的計(jì)算值作為預(yù)設(shè)位的值;之后,將計(jì)算值作為序號(hào),從預(yù)設(shè)的字符串中獲取計(jì)算值對(duì)應(yīng)的位的字符,并將該字符作為當(dāng)前位的值。由此可見,本發(fā)明實(shí)施例能夠?qū)N碼進(jìn)行加密,實(shí)現(xiàn)安全性的目的。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。