專利名稱:短鏈接生成方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及一種短鏈接生成方法及系統(tǒng)。
背景技術:
互聯(lián)網(wǎng)應用中,短鏈接是比較重要的減少網(wǎng)絡流量,加密數(shù)據(jù)內(nèi)容的方法。傳統(tǒng)的短鏈接生成算法是使用鏈接地址作為輸入,輸出一個6位定長的hash值字串,通過該hash值字串進行鏈接地址跳轉(zhuǎn)。但這種方法存在兩個問題I、大部分生成的短鏈接地址是定長的,在鏈接地址的輸入數(shù)據(jù)量比較小的時候會浪費比較多的網(wǎng)絡流量;2、對于同站內(nèi)數(shù)據(jù),更多需要短鏈接和加密處理的是數(shù)字ID,目前的短鏈接算法 沒有針對數(shù)字ID的短鏈接算法進行優(yōu)化。因此,目前亟需一種的短鏈接生成方法及系統(tǒng)針對不同數(shù)據(jù)內(nèi)容的數(shù)字ID或數(shù)字編號生成可變長的短鏈接。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種短鏈接生成方法及系統(tǒng),能夠針對不同數(shù)據(jù)內(nèi)容的數(shù)字ID或數(shù)字編號生成可變長的短鏈接,節(jié)省網(wǎng)絡流量。為解決上述問題,本發(fā)明提供一種短鏈接生成方法,包括SI :預先選定短鏈接生成方式并根據(jù)所述短鏈接生成方式預設短鏈接字典;S2 :獲取一數(shù)字串并預設一初始為空的結(jié)果字串;S3:根據(jù)所述數(shù)字串在所述短鏈接字典中獲取對應的字符并加入所述結(jié)果字串中,將所述結(jié)果字串作為短鏈接輸出。進一步的,在上述方法中,步驟S3包括判斷所述數(shù)字串是否為零,若所述數(shù)字串為零,則將所述結(jié)果字串作為短鏈接輸出并結(jié)束;若所述數(shù)字串不為零,則根據(jù)所述短鏈接生成方式從所述數(shù)字串中提取字典ID,從所述短鏈接字典中獲取對應于所述字典ID的字符,并將所述字符加入所述結(jié)果字串中,根據(jù)所述數(shù)字串和短鏈接生成方式重新生成下一個迭代中的數(shù)字串,重復步驟S3。進一步的,在上述方法中,所述短鏈接生成方式為模運算或移位運算。進一步的,在上述方法中,所述根據(jù)所述數(shù)字串和短鏈接生成方式重新生成下一個迭代中的數(shù)字串的步驟中,若所述短鏈接生成方式為模運算,則以除法重新生成下一個迭代中的數(shù)字串。進一步的,在上述方法中,所述根據(jù)所述數(shù)字串和短鏈接生成方式重新生成下一個迭代中的數(shù)字串的步驟中,若所述短鏈接生成方式為移位運算,則以余運算右移法重新生成下一個迭代中的數(shù)字串。進一步的,在上述方法中,所述短鏈接字典的字符包括ASCII字符中的所有字符。
進一步的,在上述方法中,所述短鏈接字典的字符包括不被URL編碼的69個字符。根據(jù)本發(fā)明的另一面,提供一種短鏈接生成系統(tǒng),包括預設模塊,用于預先選定短鏈接生成方式并根據(jù)所述短鏈接生成方式預設短鏈接字典,以及獲取一數(shù)字串并預設一初始為空的結(jié)果字串;以及短鏈接生成模塊,用于根據(jù)所述數(shù)字串在所述短鏈接字典中獲取對應的字符并加入所述結(jié)果字串中,將所述結(jié)果字串作為短鏈接輸出。進一步的,在上述系統(tǒng)中,所述預設模塊包括短鏈接方式模塊,用于預先選定短鏈接生成方式; 字典模塊,用于根據(jù)所述短鏈接生成方式預設短鏈接字典;輸入模塊,用于獲取一數(shù)字串;以及結(jié)果字串模塊,用于預設一初始為空的結(jié)果字串。進一步的,在上述系統(tǒng)中,所述短鏈接生成模塊包括判斷模塊,用于判斷所述數(shù)字串是否為零;輸出模塊,用于當所述判斷模塊判斷所述數(shù)字串為零時,則將所述結(jié)果字串作為短鏈接輸出并結(jié)束;以及迭代模塊,用于當所述判斷模塊判斷所述數(shù)字串不為零時,根據(jù)所述短鏈接生成方式從所述數(shù)字串中提取字典ID,從所述短鏈接字典中獲取對應于所述字典ID的字符,并將所述字符加入所述結(jié)果字串中,根據(jù)所述數(shù)字串和短鏈接生成方式重新生成下一個迭代中的數(shù)字串并發(fā)送到所述判斷模塊。進一步的,在上述系統(tǒng)中,所述短鏈接生成方式包括模運算或移位運算。進一步的,在上述系統(tǒng)中,若所述短鏈接生成方式為模運算,則所述迭代模塊以除法重新生成下一個迭代中的數(shù)字串。進一步的,在上述系統(tǒng)中,若所述短鏈接生成方式為移位運算,則所述迭代模塊以余運算右移法重新生成下一個迭代中的數(shù)字串。與現(xiàn)有技術相比,本發(fā)明通過預先選定短鏈接生成方式并根據(jù)所述短鏈接生成方式預設短鏈接字典,獲取一數(shù)字串并預設一初始為空的結(jié)果字串,然后根據(jù)所述數(shù)字串在所述短鏈接字典中獲取對應的字符并加入所述結(jié)果字串中,將所述結(jié)果字串作為短鏈接輸出,得到的短鏈接的長度是由輸入的數(shù)據(jù)內(nèi)容的數(shù)字串決定的,可針對不同數(shù)據(jù)內(nèi)容的數(shù)字串如數(shù)字ID或數(shù)字編號生成可變長的短鏈接,有效節(jié)省網(wǎng)絡流量。
圖I是本發(fā)明一實施例的短鏈接生成方法的流程圖;圖2是本發(fā)明一實施例的生成短鏈接的詳細流程圖;圖3是本發(fā)明一實施例的短鏈接生成系統(tǒng)的功能模塊示意圖。
具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步詳細的說明。圖I是本發(fā)明一實施例的短鏈接生成方法的流程圖,圖2是本發(fā)明一實施例的生成短鏈接的詳細流程圖。如圖I和圖2所示,本發(fā)明提供一種短鏈接生成方法,包括步驟SI,預先選定短鏈接生成方式并根據(jù)所述短鏈接生成方式預設短鏈接字典,具體的,所述短鏈接生成方式可為模運算或移位運算,所述短鏈接字典是可生成短鏈接的字符集合,短鏈接結(jié)果中的內(nèi)容都從述短鏈接字典中取得,所述短鏈接字典根據(jù)約定的所述短鏈接生成方式產(chǎn)生,所述短鏈接字典的字符包括ASCII字符中的所有字符或URL編碼不會影響的69個字符,所述URL編碼不會影響的69個字符包括26個大寫英文字母、26個小寫英文字母、10 個數(shù)字、“!一”及”;步驟S2,獲取一數(shù)字串并預設一初始為空的結(jié)果字串,具體的,本發(fā)明的目標是處理一個數(shù)據(jù)內(nèi)容的數(shù)字串如數(shù)字ID或數(shù)字編號等;步驟S3,根據(jù)所述數(shù)字串在所述短鏈接字典中獲取對應的字符并加入所述結(jié)果字串中,將所述結(jié)果字串作為短鏈接輸出;其中,所述步驟S3中的設計可以比較靈活地用不同的設計實現(xiàn),例如,所述步驟S3中具體可包括如下步驟步驟S31,判斷所述數(shù)字串是否為零,若所述數(shù)字串為零,則執(zhí)行步驟S32,若所述數(shù)字串不為零,則執(zhí)行步驟S331至步驟S334 ;步驟S32,將所述結(jié)果字串作為短鏈接輸出并結(jié)束整個生成短鏈接的步驟;步驟S331,根據(jù)所述短鏈接生成方式從所述數(shù)字串中提取字典ID,從而使所述數(shù)字串不斷被一組字典ID表達,所述短鏈接生成方式的設計由短鏈接的產(chǎn)生策略而定,如一個數(shù)字的模(余數(shù))、一個數(shù)據(jù)的進制位數(shù)據(jù)等等;步驟S332,從所述短鏈接字典中獲取對應于所述字典ID的字符,具體的,可根據(jù)所述字典ID從所述短鏈接中按索引提取相應的字符組合成為短鏈接內(nèi)容;步驟S333,將所述字符加入所述結(jié)果字串中,具體的,可將生成的所述字符按從左到右或從右到左的順序合并為一字符串組成結(jié)果字串;步驟S334,根據(jù)所述數(shù)字串和短鏈接生成方式重新生成下一個迭代中的數(shù)字串,具體的,本步驟中,若所述述短鏈接生成方式為模運算,則以除法取商重新生成下一個迭代中的數(shù)字串;若所述述短鏈接生成方式為移位運算,則以余運算右移法重新生成下一個迭代中的數(shù)字串;步驟S334之后,重復所述生成短鏈接的步驟S3,即重新從步驟S31開始執(zhí)行,直到所述數(shù)字串為零,將所述結(jié)果字串作為短鏈接輸出后為止,這樣得到的短鏈接的字串長度是由輸入的數(shù)字串的內(nèi)容決定的,所以這種短鏈接的生成方式是一種可變長短鏈接的實現(xiàn)方式,生成短鏈接的同時數(shù)據(jù)也得到了加密,在保證數(shù)據(jù)傳輸安全的同時也有效節(jié)省了網(wǎng)
絡流量。 本發(fā)明的一實施例中,如所述短鏈接生成方式為模運算,預設短鏈接字典,所述短鏈接字典由64個不被瀏覽器編碼的字符組成,具體包括26個英文字母的小寫、26個英文字母的小寫、10個數(shù)字、減號和下劃線,后續(xù)步驟中用這些字符來構(gòu)成最終的短鏈接字符串;因而,首先判斷所述數(shù)字串n是否為零,若所述數(shù)字串為零,則將所述結(jié)果字串作為短鏈接輸出并結(jié)束整個生成短鏈接的步驟;若所述數(shù)字串不為零,則將數(shù)字串n除以64的模(n%64)作為字典ID(這里是為了將數(shù)字串n不斷轉(zhuǎn)化為1-64之字的數(shù)字,以從所述短鏈接字典中查找到對應的字符),并根據(jù)所述字典ID到64位的短鏈接字典中提取相應的字符,將本次提取的字符添加在結(jié)果字串的尾部,再將數(shù)字串n除以64的商作為下一個迭代中的數(shù)字串n,之后,重復上述步驟,直到所述數(shù)字串為零,將所述結(jié)果字串作為短鏈接輸出后為止。本發(fā)明的一實施例中,如所述短鏈接生成方式為移位運算,預設短鏈接字典,所述短鏈接字典由64個不被瀏覽器編碼的字符組成,具體包括26個英文字母的小寫、26個英文字母的小寫、10個數(shù)字、減號和下劃線,后續(xù)步驟中用這些字符來構(gòu)成最終的短鏈接字符串;因而,首先判斷所述數(shù)字串n是否為零,若所述數(shù)字串為零,則將所述結(jié)果字串作為短鏈接輸出并結(jié)束整個生成短鏈接的步驟;若所述數(shù)字串不為零,則提取數(shù)字串n的二進制數(shù)的最后6位作為字典ID (這里是為了將數(shù)字串n不斷轉(zhuǎn)化為1-64之字的數(shù)字,以從所述短鏈接字典中查找到對應的字符),根據(jù)所述字典ID到64位的短鏈接字典中提取相應的字符,將本次提取的字符添加在結(jié)果字串的尾部,再將數(shù)字串n的二進制數(shù)右移6位重新生成下一個迭代中的數(shù)字串n,即將原數(shù)字串n中去除了提取過字典ID的最后6位二進制數(shù)的剩余位數(shù)的二進字數(shù)作為下一個迭代中的數(shù)字串n,之后,重復上述步驟,直到所述數(shù)字串為零,將所述結(jié)果字串作為短鏈接輸出后為止。 圖3是本發(fā)明一實施例的短鏈接生成系統(tǒng)的功能模塊示意圖。如圖3所示,本發(fā)明還提供另一種短鏈接生成系統(tǒng),包括預設模塊I和短鏈接生成模塊2,其中,預設模塊I用于預先選定短鏈接生成方式并根據(jù)所述短鏈接生成方式預設短鏈接字典,以及獲取一數(shù)字串并預設一初始為空的結(jié)果字串;具體的,所述預設模塊包括短鏈接方式模塊11、字典模塊12、輸入模塊13及結(jié)果字串模塊14,其中,短鏈接方式模塊11用于預先選定短鏈接生成方式,短鏈接方式模塊11預先選定的所述短鏈接生成方式包括模運算或移位運算;字典模塊12用于根據(jù)所述短鏈接生成方式預設短鏈接字典;輸入模塊13用于獲取一數(shù)字串,本發(fā)明的目標是處理一個數(shù)據(jù)內(nèi)容的數(shù)字串如數(shù)字ID或數(shù)字編號等;結(jié)果字串模塊14用于預設一初始為空的結(jié)果字串。短鏈接生成模塊2用于根據(jù)所述數(shù)字串在所述短鏈接字典中獲取對應的字符并加入所述結(jié)果字串中,將所述結(jié)果字串作為短鏈接輸出,具體的,所述短鏈接生成模塊包括判斷模塊21、輸出模塊22及迭代模塊23,其中,判斷模塊21用于判斷所述數(shù)字串是否為零;輸出模塊22用于當所述判斷模塊判斷所述數(shù)字串為零時,則將所述結(jié)果字串作為短鏈接輸出并結(jié)束;迭代模塊23用于當所述判斷模塊21判斷所述數(shù)字串不為零時,根據(jù)所述短鏈接生成方式從所述數(shù)字串中提取字典ID,從所述短鏈接字典中獲取對應于所述字典ID的字符,并將所述字符加入所述結(jié)果字串中,根據(jù)所述數(shù)字串和短鏈接生成方式重新生成下一個迭代中的數(shù)字串并發(fā)送到所述判斷模塊21從新判斷所述數(shù)字串是否為零,若所述短鏈接方式模塊11預先選定的所述短鏈接生成方式為模運算,則所述迭代模塊23以除法取商重新生成下一個迭代中的數(shù)字串,另外,若所述短鏈接方式模塊11預先選定的所述短鏈接生成方式為移位運算,則所述迭代模塊23以余運算右移法重新生成下一個迭代中的數(shù)字串;這樣得到的短鏈接的字串長度是由輸入的數(shù)字串的內(nèi)容決定的,所以這種短鏈接的生成方式是一種可變長短鏈接的實現(xiàn)方式,生成短鏈接的同時數(shù)據(jù)也得到了加密,在保證數(shù)據(jù)傳輸安全的同時也有效節(jié)省了網(wǎng)絡流量。
本發(fā)明通過預先選定短鏈接生成方式并根據(jù)所述短鏈接生成方式預設短鏈接字典,獲取一數(shù)字串并預設一初始為空的結(jié)果字串,并根據(jù)所述數(shù)字串在所述短鏈接字典中獲取對應的字符并加入所述結(jié)果字串中,將所述結(jié)果字串作為短鏈接輸出,得到的短鏈接的長度是由輸入的數(shù)據(jù)內(nèi)容的數(shù)字串決定的,可針對不同數(shù)據(jù)內(nèi)容的數(shù)字串如數(shù)字ID或數(shù)字編號生成可變長的短鏈接,有效節(jié)省網(wǎng)絡流量。本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的系統(tǒng)而言,由于與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應 認為超出本發(fā)明的范圍。顯然,本領域的技術人員可以對發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包括這些改動和變型在內(nèi)。
權利要求
1.一種短鏈接生成方法,其特征在于,包括 Si:預先選定短鏈接生成方式并根據(jù)所述短鏈接生成方式預設短鏈接字典; S2 :獲取ー數(shù)字串并預設一初始為空的結(jié)果字串; S3:根據(jù)所述數(shù)字串在所述短鏈接字典中獲取對應的字符并加入所述結(jié)果字串中,將所述結(jié)果字串作為短鏈接輸出。
2.如權利要求I所述的短鏈接生成方法,其特征在于,步驟S3包括 判斷所述數(shù)字串是否為零, 若所述數(shù)字串為零,則將所述結(jié)果字串作為短鏈接輸出并結(jié)束; 若所述數(shù)字串不為零,則根據(jù)所述短鏈接生成方式從所述數(shù)字串中提取字典ID,從所述短鏈接字典中獲取對應于所述字典ID的字符,并將所述字符加入所述結(jié)果字串中,根據(jù)所述數(shù)字串和短鏈接生成方式重新生成下一個迭代中的數(shù)字串,重復步驟S3。
3.如權利要求2所述的短鏈接生成方法,其特征在于,所述短鏈接生成方式為模運算或移位運算。
4.如權利要求3所述的短鏈接生成方法,其特征在于,所述根據(jù)所述數(shù)字串和短鏈接生成方式重新生成下一個迭代中的數(shù)字串的步驟中,若所述短鏈接生成方式為模運算,則以除法重新生成下一個迭代中的數(shù)字串。
5.如權利要求3所述的短鏈接生成方法,其特征在于,所述根據(jù)所述數(shù)字串和短鏈接生成方式重新生成下一個迭代中的數(shù)字串的步驟中,若所述短鏈接生成方式為移位運算,則以余運算右移法重新生成下一個迭代中的數(shù)字串。
6.如權利要求I所述的短鏈接生成方法,其特征在于,所述短鏈接字典的字符包括ASCII字符中的所有字符。
7.如權利要求I所述的短鏈接生成方法,其特征在于,所述短鏈接字典的字符包括不被URL編碼的69個字符。
8.一種短鏈接生成系統(tǒng),其特征在于,包括 預設模塊,用于預先選定短鏈接生成方式并根據(jù)所述短鏈接生成方式預設短鏈接字典,以及獲取一數(shù)字串并預設一初始為空的結(jié)果字串;以及 短鏈接生成模塊,用于根據(jù)所述數(shù)字串在所述短鏈接字典中獲取對應的字符并加入所述結(jié)果字串中,將所述結(jié)果字串作為短鏈接輸出。
9.如權利要求8所述的短鏈接生成系統(tǒng),其特征在于,所述預設模塊包括 短鏈接方式模塊,用于預先選定短鏈接生成方式; 字典模塊,用于根據(jù)所述短鏈接生成方式預設短鏈接字典; 輸入模塊,用于獲取一數(shù)字串;以及 結(jié)果字串模塊,用于預設一初始為空的結(jié)果字串。
10.如權利要求9所述的短鏈接生成系統(tǒng),其特征在于,所述短鏈接生成模塊包括 判斷模塊,用于判斷所述數(shù)字串是否為零; 輸出模塊,用于當所述判斷模塊判斷所述數(shù)字串為零時,則將所述結(jié)果字串作為短鏈接輸出并結(jié)束;以及 迭代模塊,用于當所述判斷模塊判斷所述數(shù)字串不為零時,根據(jù)所述短鏈接生成方式從所述數(shù)字串中提取字典ID,從所述短鏈接字典中獲取對應于所述字典ID的字符,并將所述字符加入所述結(jié)果字串中,根據(jù)所述數(shù)字串和短鏈接生成方式重新生成下一個迭代中的數(shù)字串并發(fā)送到所述判斷模塊。
11.如權利要求10所述的短鏈接生成系統(tǒng),其特征在于,所述短鏈接生成方式為模運算或移位運算。
12.如權利要求11所述的短鏈接生成系統(tǒng),其特征在于,若所述短鏈接生成方式為模運算,則所述迭代模塊以除法重新生成下一個迭代中的數(shù)字串。
13.如權利要求11所述的短鏈接生成系統(tǒng),其特征在于,若所述短鏈接生成方式為移位運算,則所述迭代模塊以余運算右移法重新生成下一個迭代中的數(shù)字串。
全文摘要
本發(fā)明涉及一種短鏈接生成方法及系統(tǒng),所述方法包括預先選定短鏈接生成方式并根據(jù)所述短鏈接生成方式預設短鏈接字典;獲取一數(shù)字串并預設一初始為空的結(jié)果字串;根據(jù)所述數(shù)字串在所述短鏈接字典中獲取對應的字符并加入所述結(jié)果字串中,將所述結(jié)果字串作為短鏈接輸出,本發(fā)明得到的短鏈接的長度是由輸入的數(shù)據(jù)內(nèi)容的數(shù)字串決定的,可針對不同數(shù)據(jù)內(nèi)容的數(shù)字串如數(shù)字ID或數(shù)字編號生成可變長的短鏈接,有效節(jié)省網(wǎng)絡流量。
文檔編號H04L29/06GK102801769SQ20121005194
公開日2012年11月28日 申請日期2012年3月1日 優(yōu)先權日2012年3月1日
發(fā)明者趙志猛, 楊繼珩, 潘蕓倩 申請人:盛樂信息技術(上海)有限公司