1. 程式人生 > >Android生成唯一識別符號UUID

Android生成唯一識別符號UUID

在這次新版本的app開發中,其中增加了遊客賬號訪問,但需要為該遊客生成一個唯一識別符號identity,最初考慮通過mac地址或者imei來唯一標識,但是後面有一項需求,遊客賬號可以升級,升級之後退出重新遊客訪問的話就需要生成新的identity,這樣一來就必須手動生成唯一的identity了,好在java提供了生成UUID唯一標示符。演算法的核心思想是結合機器的網絡卡、當地時間、一個隨即數來生成GUID。從理論上講,如果一臺機器每秒產生10000000個GUID,則可以保證(概率意義上)3240年不重複。

UUID(Universally Unique Identifier)全域性唯一識別符號,是指在一臺機器上生成的數字,它保證對在同一時空中的所有機器都是唯一的。按照開放軟體基金會(OSF)制定的標準計算,用到了乙太網卡地址、納秒級時間、晶片ID碼和許多可能的數字。由以下幾部分的組合:當前日期和時間(UUID的第一個部分與時間有關,如果你在生成一個UUID之後,過幾秒又生成一個UUID,則第一個部分不同,其餘相同),時鐘序列,全域性唯一的IEEE機器識別號(如果有網絡卡,從網絡卡獲得,沒有網絡卡以其他方式獲得),UUID的唯一缺陷在於生成的結果串會比較長。

生成程式碼比較簡單,就一句:

java.util.UUID.randomUUID().toString();
如果未升級的遊客賬號退出重新登入這個時候再重新訪問還是用原來的identity,解決方法也很簡單,把第一次生成的identity存起來,下次就直接取值了,看下程式碼吧:
public String getIdentity() {
  SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences(context);
  String identity = preference.getString("identity", null);
  if (identity == null) {
      identity = java.util.UUID.randomUUID().toString();
      preference.edit().putString("identity", identity);
  }
  return identity;
}

轉載:http://stormzhang.github.io/blog/2013/10/11/java-generate-identity/

相關推薦

Android生成唯一識別符號UUID

在這次新版本的app開發中,其中增加了遊客賬號訪問,但需要為該遊客生成一個唯一識別符號identity,最初考慮通過mac地址或者imei來唯一標識,但是後面有一項需求,遊客賬號可以升級,升級之後退出重新遊客訪問的話就需要生成新的identity,這樣一來就必須手動生成唯

C# Guid.NewGuid() —— 隨機生成唯一識別符號

程式碼一般如下: Id = Guid.NewGuid().ToString(); 意在生成一個隨機的唯一識別符號,一般在專案中用來生成資料庫的主鍵Id。 長這樣: 有幾種格式化的方法如下: System.Guid.NewGuid().ToString("N");

Android裝置唯一識別符號ID

一、獲取各種單一的裝置標識方式 1、DEVICE_ID 概念:是區別移動裝置的標誌,儲存在移動裝置中,可用於監控被竊或無效的移動裝置。 優點:根據不同的手機裝置返回IMEI,MEID或者ESN碼,唯一性良好 缺點:由於獲取

node.js 根據時間戳生成惟一識別符號、隨機生成唯一識別符號

根據時間戳生成惟一識別符號、隨機生成唯一識別符號 npm install node-uuid //根據時間戳生成惟一識別符號 console.log(uuid.v1()) //隨機生成唯一識別符號 console.log(uuid.v4())

Javascript 生成全域性唯一識別符號 (GUID,UUID

全域性唯一識別符號(GUID,Globally Unique Identifier)也稱作 UUID(Universally Unique IDentifier) 。 GUID是一種由演算法生成的二進位制長度為128位的數字識別符號。GUID 的格式為“xxxxxxxx-xxxx-xxxx-xxxx-xxx

Javascript生成全域性唯一識別符號(GUID,UUID)的方法

全域性唯一識別符號(GUID,Globally Unique Identifier)也稱作 UUID(Universally Unique IDentifier) 。 GUID是一種由演算法生成的二進位制長度為128位的數字識別符號。GUID 的格式為“xxxxxxxx-xxxx-xxxx-xx

Python使用UUID生成唯一ID

cor 通過 重復 rsa print edi 再次 好用 標識符 原鏈接:http://www.cnblogs.com/dkblog/archive/2011/10/10/2205200.html 資料: Python官方Doc:《20.15. uuid — U

生成唯一標識符 ,通用唯一標識符 UUID

字母 domu () fin and div final import bsp 1 import java.util.UUID; 2 3 /** 4 * UUID生成工具 5 * 6 */ 7 8 public final class Uuid

web叢集全域性唯一request id生成演算法, 替代uuid等“通用”方案

如何為每一個web請求分配一個在全叢集範圍內都唯一的request id 卻又不想去實現一個複雜的集中式id序列生成器呢? UUID? 這或許是個辦法,但不覺得不太甘心麼? 下面的這個方式可能可以幫到你: package test; import java.util.concur

python使用uuid生成唯一ID

uuid是128位的全域性唯一識別符號(univeral unique identifier),通常用32位的一個字串的形式來表現。有時也稱guid(global unique identifier)。python中自帶了uuid模組來進行uuid的生成和管理工作。(具體從哪個版本開始有的不清楚。。

【Python】uuid生成唯一ID

uuid是128位的全域性唯一識別符號(univeral unique identifier),通常用一個32位的字串的形式來表現。有時也稱guid(global unique identifier)。python中自帶了uuid模組來進行uuid的生成和管理工作。(pyth

【轉】python--Python中生成唯一ID的庫——UUID

原文連結https://www.douban.com/note/69073375/ 本來是要給例項新增唯一標識,想了一個偽隨機的方法: # 我想的偽隨機辦法 # 用時間戳和隨機數來生成唯一數字id import scipy

【知識積累】Java中的UUID類(生成唯一ID)

1.UUID 簡介      UUID含義是通用唯一識別碼 (Universally Unique Identifier),這是一個軟體建構的標準,也是被開源軟體基金會 (Open Software Foundation, OSF) 的組織應用在分散式計算環

IOS和Android生成裝置唯一ID

文章目錄 IOS系統 Android系統 對於移動開發者來說, 經常需要追蹤使用者使用了哪臺裝置登入. 但是隨著手機系統越來越完善, 對安全性要求也越來越高. IOS已經無法獲取IMEI, 網路MAC地址資訊, Android獲取IMEI需要使用者許

穩定獲取Android裝置唯一碼(UUID)的解決方案

最近做的一個專案中需要用到Android裝置唯一碼(UUID)來標識一臺裝置, Android中裝置唯一碼有很多,如:MAC地址、IMEI號(DeviceId)、IMSI號、ANDROID_ID、序列號(SerialNumber)等, 但並不是所有裝置上都能穩定獲取到這些值。 最後專案中採用的是MAC地址

android獲取裝置唯一識別符號

1、獲取IMEI: adb命令:adb shell dumpsys iphonesubinfo 手機裝置檢視:<1>*#06#(通話快捷查詢)<2>設定--->關於手機--->狀態訊息--->IMEI <3>直

獲取Android裝置的唯一識別符號

最近做的一個需求,客戶要求賬號最多繫結三臺裝置。我之所以說是唯一識別符號而不是獲取Android裝置的IMEI是因為IMEI並不是唯一的解決方案,也不一定是最優解,具體還要看需求。 IMEI 先說一下最常用的IMEI,android系統中通常用下面這段程式碼

Android 裝置唯一標識生成方式

Android裝置唯一標識生成方式 為什麼很多安卓應用都要獲取IMEI? 很多應用都會要求獲取IMEI,尤其神奇的是,我禁用了天貓客戶端的許可權,彈出來一行英文,大概是什麼內容獲取不到,無法登入,又試了一次,登入成功,發現許可權管理裡許可權竟然被打開了。 像天貓(支付寶)/

Python 標準庫 —— uuid生成唯一 ID)

有時我們在百度貼吧,在一個網站,儲存網頁上的一些圖片時,圖片名有時會是一串很長的數字和字母組成的,但無一例外,影象之間不會出現重名。這個唯一的 id,一般通過 uuid 的方式獲得,uuid 根據的是從 1970年1月1日到現在經歷的秒數。 1.

在 IOS 7 中獲取唯一識別符號(UDID/UUID)(轉)

如何使用KeyChain儲存和獲取UDID   本文是iOS7系列文章第一篇文章,主要介紹使用KeyChain儲存和獲取APP資料,解決iOS7上獲取不變UDID的問題。並給出一個獲取UDID的工具類,使用方便,只需要替換兩個地方即可。 一、iOS不用版本獲取U