欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種產生標識符的方法

文檔序號:7625665閱讀:166來源:國知局
專利名稱:一種產生標識符的方法
技術領域
本發(fā)明涉及通信領域的標識符產生技術,特別涉及一種產生標識符的方法。
背景技術
在通信技術領域中,標識符(ID)的應用非常廣泛。例如電話卡、充值卡或銀行卡等各種卡的卡號都是一個ID,用于唯一標識一張卡;電話會議接入碼、網絡會議接入碼等也都是一個ID,用于唯一標識一個電話會議或網絡會議。上述各種ID應滿足以下要求1、ID為數(shù)字的組合,使用戶能夠在通信終端上輸入。
2、ID具有唯一性,一個ID只能標識一個對象,不能與已有的ID重復。
3、ID具有隨機性,每次產生的ID沒有任何規(guī)律,任何人任何時候都不能通過已知的ID,推導出新產生的ID。
4、ID具有長度可配置性,用戶可根據(jù)被標識對象數(shù)量的變化來配置ID的長度。
現(xiàn)有技術中,一般利用以下兩種方式來產生滿足上述要求的ID一種是利用每位隨機并組合的方式;另一種是利用系統(tǒng)當前時間戳與隨機數(shù)組合的方式。
其中,利用每位隨機并組合的方式產生ID的原理如下如果要產生一個N位的ID,則對于N位中每一位分別產生
之間的隨機數(shù),將產生的隨機數(shù)組合在一起形成一個N位的ID,然后判斷已有的ID中是否包含有新產生的這個ID,如果有,則說明新產生的ID與已有的ID重復,需要再次產生一個ID,直至新產生的ID與已有的ID不重復為止。
利用系統(tǒng)當前時間戳與隨機數(shù)組合的方式產生ID的原理如下計算機編程語言可以提供獲取系統(tǒng)當前時間戳的方法及產生隨機數(shù)的隨機函數(shù),利用計算機編程語言提供的獲取系統(tǒng)當前時間戳的方法獲取系統(tǒng)的當前時間戳,利用計算機編程語言提供的產生隨機數(shù)的隨機函數(shù)產生一個一位或幾位的隨機數(shù),然后將獲取的時間戳設置在高位,將產生的隨機數(shù)設置在低位,二者組合在一起形成一個ID。
這里,利用計算機編程語言提供的獲取系統(tǒng)當前時間戳的方法所獲取的系統(tǒng)當前時間戳,一般是從1970年1月1日0時0分0秒起到現(xiàn)在某一時刻所經過的秒數(shù),該秒數(shù)在計算機中一般用4字節(jié)的整型數(shù)來存儲。
對于第一種產生ID的方式而言,雖然產生的ID滿足全部數(shù)字、唯一、隨機和長度可配置的要求,但是已有ID的數(shù)量越多,已有ID中包含有新產生的ID的概率就越大,對于新產生的ID包含在已有ID的情況,又要重新生成ID,……,如此反復,產生ID的效率很低,無法滿足一些對產生ID的效率要求高的場合。
對于第二種產生ID的方式而言,由于在現(xiàn)有的計算機系統(tǒng)中,時間戳一般使用四字節(jié)的整型數(shù)來表示,其長度已達到10個字符,如果在其后再加上一個一位或幾位的隨機數(shù),將導致產生ID的位數(shù)過長,不能很好地滿足用戶根據(jù)被標識對象數(shù)量的變化來配置ID長度的要求。另外,由于利用隨機函數(shù)產生的隨機數(shù)是可能發(fā)生重復的,如果每秒鐘允許產生多個ID,則產生的ID就可能發(fā)生重復,這樣仍需要同第一種產生ID的方式一樣,判斷新產生的ID是否重復,所以第二種產生ID的方式限制了每秒鐘只能產生一個ID,顯然無法滿足大數(shù)據(jù)量業(yè)務應用的要求。

發(fā)明內容
有鑒于此,本發(fā)明的主要目的在于提供一種產生ID的方法,以提高產生滿足全部數(shù)字、唯一、隨機和長度可配置要求ID的效率,并滿足大數(shù)據(jù)量業(yè)務應用的要求。
為達到上述目的,本發(fā)明提供了一種產生ID的方法,包括以下步驟A、配置ID的取值范圍,根據(jù)ID的可用性劃分ID的取值區(qū)間;
B、在所劃分的任意一個取值區(qū)間中任取一個ID作為新產生的ID。
上述方案中,步驟A中所述的根據(jù)ID的可用性劃分ID的取值區(qū)間為在配置的ID的取值范圍中根據(jù)所有已用的ID確定當前所有可用的ID,將當前所有可用的ID劃分為ID值連續(xù)的至少一個取值區(qū)間。
上述方案中,所述的步驟B包括B1、對所劃分的所有取值區(qū)間進行編號;B2、利用隨機函數(shù)產生編號數(shù)目范圍內的一個隨機數(shù),選擇編號與產生的隨機數(shù)相同的取值區(qū)間,判斷所選擇用于產生ID的取值區(qū)間內ID的個數(shù),如果該取值區(qū)間內只有一個ID,則取該ID作為新產生的ID;如果該取值區(qū)間內有一個以上的ID,則執(zhí)行步驟B3;B3、利用隨機函數(shù)產生該取值區(qū)間中ID數(shù)目范圍內的一個隨機數(shù),取該取值區(qū)間中與該隨機數(shù)對應的ID作為新產生的ID。
上述方案中,所述ID需產生多個,該方法進一步包括根據(jù)ID的可用性更新ID的取值區(qū)間,在更新后的任意一個取值區(qū)間中任取一個ID作為新產生的ID。
上述方案中,所述產生上一個ID時選擇用于產生ID的取值區(qū)間內只有一個ID;所述更新ID的取值區(qū)間為刪除該取值區(qū)間,并對剩余的取值區(qū)間重新編號。
上述方案中,所述產生上一個ID時選擇用于產生ID的取值區(qū)間內有一個以上的ID,且將該取值區(qū)間的一個邊界ID作為新產生的ID;所述更新ID的取值區(qū)間為刪除該取值區(qū)間中作為新產生ID的邊界ID,更新該取值區(qū)間。
上述方案中,所述產生上一個ID時選擇用于產生ID的取值區(qū)間內有一個以上的ID,且將該取值區(qū)間的一個非邊界ID作為新產生的ID;所述更新ID的取值區(qū)間為刪除該取值區(qū)間中作為新產生ID的非邊界ID,將該取值區(qū)間劃分為兩個取值區(qū)間,并對所有取值區(qū)間重新編號。
因此,本發(fā)明提供的這種產生ID的方法,通過配置ID的取值范圍,根據(jù)ID的可用性劃分ID的取值區(qū)間,并利用隨機函數(shù)在所劃分的任意一個取值區(qū)間中任取一個ID作為新產生的ID,能夠產生滿足全部數(shù)字、唯一、隨機和長度可配置要求的ID。
利用本發(fā)明,由于ID的取值范圍可以由用戶根據(jù)實際需要來配置,設定ID的最大值和最小值,所以能夠保證產生的ID為全部數(shù)字且長度可配置的ID。在需要產生多個ID時,由于每次產生ID后都要更新ID的取值區(qū)間,使每次都在未用ID的范圍內產生ID,所以能夠保證產生ID的唯一性。由于本發(fā)明是利用隨機函數(shù)來隨機選擇產生ID的取值區(qū)間,并在該取值區(qū)間中利用隨機函數(shù)來隨機選擇一個ID作為產生的ID,所以能夠在最大程度上保證產生ID的隨機性。因此,本發(fā)明能夠產生滿足全部數(shù)字、唯一、隨機和長度可配置要求的ID。
由于每次都在未用ID的范圍內產生ID,保證產生的ID滿足唯一性要求,在產生ID時不必判斷產生的ID是否會發(fā)生重復,所以大大提高了產生滿足全部數(shù)字、唯一、隨機和長度可配置要求ID的效率。
由于產生滿足全部數(shù)字、唯一、隨機和長度可配置要求的ID與計算機系統(tǒng)的當前時間戳無關,在單位時間內可以產生大量滿足要求的ID,所以能夠滿足大數(shù)據(jù)量業(yè)務應用的要求。


圖1為本發(fā)明產生ID總體技術方案的實現(xiàn)流程圖;圖2為本發(fā)明一個實施例中產生ID的方法流程圖。
具體實施例方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,以下舉實施例,并參照附圖,對本發(fā)明進一步詳細說明。
本發(fā)明的核心內容是通過配置ID的取值范圍,根據(jù)ID的可用性劃分ID的取值區(qū)間,并利用隨機函數(shù)在所劃分的任意一個取值區(qū)間中任取一個ID作為新產生的ID,能夠產生滿足全部數(shù)字、唯一、隨機和長度可配置要求的ID。
如圖1所示,圖1為本發(fā)明產生ID總體技術方案的實現(xiàn)流程圖,該方法包括以下步驟步驟101配置ID的取值范圍,根據(jù)ID的可用性劃分ID的取值區(qū)間;步驟102在所劃分的任意一個取值區(qū)間中任取一個ID作為新產生的ID。
在上述步驟101中,所述配置ID的取值范圍是用戶根據(jù)實際需要設定ID的最大值和最小值進行的。例如,如果用戶根據(jù)實際需要希望ID的長度為5,則可以設定ID的最小值為10000,設定ID的最大值為99999,將ID的取值范圍配置為[10000,99999]。
所述根據(jù)ID的可用性劃分ID的取值區(qū)間,是在配置的ID的取值范圍中根據(jù)所有已用的ID確定當前所有可用的ID,將當前所有可用的ID劃分為ID值連續(xù)的至少一個取值區(qū)間。
例如,如果配置的ID的取值范圍為[10000,99999],假設在該取值范圍中沒有已用的ID,所有的ID都是可用的ID,則將所有可用的ID劃分為ID值連續(xù)的取值區(qū)間為[10000,99999]。假設在該取值范圍中10010、11001、25001、33001、52002、68005和95608為全部已用的ID,為了保證產生的ID與已用的ID不發(fā)生重復,將ID的取值范圍[10000,99999]劃分為[10000,10009]、[10011,11000]、[11002,25000]、[25002,33000]、[33002,52001]、[52003,68004]、[68006,95607]和[95609,99999]幾個ID值連續(xù)的取值區(qū)間。
在上述步驟102中,所述在所劃分的任意一個取值區(qū)間中任取一個ID作為新產生的ID包括先對所劃分的所有取值區(qū)間進行編號,然后利用隨機函數(shù)產生編號數(shù)目范圍內的一個隨機數(shù),選擇編號與產生的隨機數(shù)相同的取值區(qū)間,判斷該取值區(qū)間內ID的個數(shù),如果該取值區(qū)間內只有一個ID,則取該ID作為新產生的ID;如果該取值區(qū)間內有一個以上的ID,則利用隨機函數(shù)產生該取值區(qū)間中ID數(shù)目范圍內的一個隨機數(shù),取該取值區(qū)間中與該隨機數(shù)對應的ID作為新產生的ID。
利用上述產生ID的方法,可以產生一個滿足全部數(shù)字、唯一、隨機和長度可配置要求的ID。如果需要產生多個滿足全部數(shù)字、唯一、隨機和長度可配置要求的ID,該方法進一步包括根據(jù)ID的可用性更新ID的取值區(qū)間,在更新后的任意一個取值區(qū)間中任取一個ID作為新產生的ID。其中,所述根據(jù)ID的可用性更新ID的取值區(qū)間包括以下幾種情況情況1、如果步驟102中利用隨機函數(shù)選擇的取值區(qū)間內只有一個ID,則取該ID作為新產生的ID后,該ID就成為已用的ID,為了保證在下一次產生ID時不會產生與該ID重復的ID,需要將該取值區(qū)間直接刪除,并對剩余的取值區(qū)間重新編號,實現(xiàn)對ID取值區(qū)間的更新。
情況2、如果步驟102中利用隨機函數(shù)選擇的取值區(qū)間內有一個以上的ID,則利用隨機函數(shù)在該取值區(qū)間中任意選取一個ID作為新產生的ID后,選取的這個ID就成為已用的ID,為了保證在下一次產生ID時不會產生與該ID重復的ID,需要將取值區(qū)間中的這個ID刪除,實現(xiàn)對ID取值區(qū)間的更新。此時又有兩種情形情形a、如果在選擇的取值區(qū)間中將取值區(qū)間的一個邊界ID作為新產生的ID,則直接刪除該取值區(qū)間中作為新產生ID的邊界ID,即可實現(xiàn)對ID取值區(qū)間的更新;情形b、如果在選擇的取值區(qū)間中將取值區(qū)間的一個非邊界ID作為新產生的ID,則刪除該取值區(qū)間中作為新產生ID的非邊界ID,同時將該取值區(qū)間劃分為兩個取值區(qū)間,并對所有的取值區(qū)間重新編號。
為了能夠更加清楚地說明本發(fā)明提供的這種產生ID的方法,以下結合一個具體的實施例,并參照附圖對此進行詳細說明。
如圖2所示,圖2為本發(fā)明一個實施例中產生ID的方法流程圖。在本實施例中需要產生多個ID,假設用戶根據(jù)實際需要配置的ID的取值范圍為
,在該取值范圍內已用的ID為3、5、6、7、12、14和55,該方法包括以下步驟步驟201為了保證產生的ID與已用的ID不發(fā)生重復,根據(jù)配置的ID的取值范圍
,以及已用的ID 3、5、6、7、12、14和55,將ID的取值范圍
劃分為
、[4,4]、[8,11]、[13,13]、[15,54]、[56,2147483648]等ID值連續(xù)的取值區(qū)間。
步驟202對劃分的取值區(qū)間
、[4,4]、[8,11]、[13,13]、[15,54]、[56,2147483648]進行編號,得到表1。

表1步驟203利用隨機函數(shù)產生編號數(shù)目范圍
內的一個隨機數(shù),選擇編號與產生的隨機數(shù)相同的取值區(qū)間。
步驟204判斷選擇的用于產生ID的取值區(qū)間內ID的個數(shù),如果所選擇的取值區(qū)間內只有一個ID,則執(zhí)行步驟205;如果所選擇的取值區(qū)間內有一個以上的ID,則執(zhí)行步驟206。
步驟205取該取值區(qū)間內的ID作為新產生的ID,更新表1所述ID的取值區(qū)間,然后執(zhí)行步驟207。
例如,如果利用隨機函數(shù)產生編號數(shù)目范圍
內的隨機數(shù)為3,則選擇編號為3的取值區(qū)間[13,13]作為用于產生ID的取值區(qū)間,由于該取值區(qū)間中只有一個ID 13,則將13作為新產生的ID;在產生該ID后,直接刪除編號為3的取值區(qū)間,并對剩余的取值區(qū)間重新編號,更新后的取值區(qū)間如表2所示。

表2
步驟206利用隨機函數(shù)產生所選擇的取值區(qū)間中ID數(shù)目范圍內的一個隨機數(shù),取該取值區(qū)間中與該隨機數(shù)對應的ID作為新產生的ID,并更新ID的取值區(qū)間。
例如,如果利用隨機函數(shù)產生編號數(shù)目范圍
內的隨機數(shù)為4,則選擇編號為4的取值區(qū)間[15,54]為產生ID的取值區(qū)間,由于該取值區(qū)間中有40個ID,則利用隨機函數(shù)產生該取值區(qū)間中ID數(shù)目范圍
內的一個隨機數(shù)。
此時,如果利用隨機函數(shù)產生該取值區(qū)間中ID數(shù)目范圍
內的隨機數(shù)為0,則將取該取值區(qū)間中與該隨機數(shù)0對應的ID作為新產生的ID,這里由于與該隨機數(shù)0對應的ID為15,即開始區(qū)間值15+隨機數(shù)值0=15,所以將15作為新產生的ID;在產生該ID后,刪除該取值區(qū)間[15,54]中作為新產生ID的邊界ID 15,更新該取值區(qū)間為[16,54],更新后的取值區(qū)間如表3所示。

表3如果利用隨機函數(shù)產生該取值區(qū)間中ID數(shù)目范圍
內的隨機數(shù)為12,則將取該取值區(qū)間中與該隨機數(shù)12對應的ID作為新產生的ID,這里由于與該隨機數(shù)12對應的ID為27,即開始區(qū)間值15+隨機數(shù)值12=27,所以將27作為新產生的ID;在產生該ID后,刪除該取值區(qū)間[15,54]中作為新產生ID的非邊界ID 27,將該取值區(qū)間[15,54]劃分為兩個取值區(qū)間[15,26]和[28,54],并對所有取值區(qū)間重新編號,更新后的取值區(qū)間如表4所示。

表4步驟207在更新后的ID的取值區(qū)間中,重復執(zhí)行步驟203~206,產生下一個滿足要求的ID,如此反復多次,可以產生多個滿足要求的ID。
以上所述的具體實施例,對本發(fā)明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種產生標識符的方法,其特征在于,包括以下步驟A、配置標識符ID的取值范圍,根據(jù)ID的可用性劃分ID的取值區(qū)間;B、在所劃分的任意一個取值區(qū)間中任取一個ID作為新產生的ID。
2.根據(jù)權利要求1所述的方法,其特征在于,步驟A中所述的根據(jù)ID的可用性劃分ID的取值區(qū)間為在配置的ID的取值范圍中根據(jù)所有已用的ID確定當前所有可用的ID,將當前所有可用的ID劃分為ID值連續(xù)的至少一個取值區(qū)間。
3.根據(jù)權利要求1所述的方法,其特征在于,所述的步驟B包括B1、對所劃分的所有取值區(qū)間進行編號;B2、利用隨機函數(shù)產生編號數(shù)目范圍內的一個隨機數(shù),選擇編號與產生的隨機數(shù)相同的取值區(qū)間,判斷所選擇用于產生ID的取值區(qū)間內ID的個數(shù),如果該取值區(qū)間內只有一個ID,則取該ID作為新產生的ID;如果該取值區(qū)間內有一個以上的ID,則執(zhí)行步驟B3;B3、利用隨機函數(shù)產生該取值區(qū)間中ID數(shù)目范圍內的一個隨機數(shù),取該取值區(qū)間中與該隨機數(shù)對應的ID作為新產生的ID。
4.根據(jù)權利要求3所述的方法,其特征在于,所述ID需產生多個,該方法進一步包括根據(jù)ID的可用性更新ID的取值區(qū)間,在更新后的任意一個取值區(qū)間中任取一個ID作為新產生的ID。
5.根據(jù)權利要求4所述的方法,其特征在于,所述產生上一個ID時選擇用于產生ID的取值區(qū)間內只有一個ID;所述更新ID的取值區(qū)間為刪除該取值區(qū)間,并對剩余的取值區(qū)間重新編號。
6.根據(jù)權利要求4所述的方法,其特征在于,所述產生上一個ID時選擇用于產生ID的取值區(qū)間內有一個以上的ID,且將該取值區(qū)間的一個邊界ID作為新產生的ID;所述更新ID的取值區(qū)間為刪除該取值區(qū)間中作為新產生ID的邊界ID,更新該取值區(qū)間。
7.根據(jù)權利要求4所述的方法,其特征在于,所述產生上一個ID時選擇用于產生ID的取值區(qū)間內有一個以上的ID,且將該取值區(qū)間的一個非邊界ID作為新產生的ID;所述更新ID的取值區(qū)間為刪除該取值區(qū)間中作為新產生ID的非邊界ID,將該取值區(qū)間劃分為兩個取值區(qū)間,并對所有取值區(qū)間重新編號。
全文摘要
本發(fā)明公開了一種產生ID的方法,包括以下步驟A.配置ID的取值范圍,根據(jù)ID的可用性劃分ID的取值區(qū)間;B.在所劃分的任意一個取值區(qū)間中任取一個ID作為新產生的ID。利用本發(fā)明,能夠產生滿足全部數(shù)字、唯一、隨機和長度可配置要求的ID,大大提高了產生滿足全部數(shù)字、唯一、隨機和長度可配置要求ID的效率,并能夠滿足大數(shù)據(jù)量業(yè)務應用的要求。
文檔編號H04L29/12GK1874357SQ20051011252
公開日2006年12月6日 申請日期2005年9月30日 優(yōu)先權日2005年9月30日
發(fā)明者李陽林 申請人:華為技術有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
若尔盖县| 廉江市| 南阳市| 黔江区| 安图县| 彭山县| 沁水县| 鸡东县| 方城县| 资源县| 贵溪市| 孟州市| 称多县| 大田县| 莎车县| 三明市| 静安区| 滕州市| 寿光市| 中方县| 宝应县| 建水县| 克山县| 新丰县| 安岳县| 北安市| 手机| 澜沧| 微博| 武威市| 朝阳区| 呈贡县| 堆龙德庆县| 班玛县| 思南县| 五峰| 丽水市| 体育| 阿坝| 改则县| 黎平县|