日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Android设备唯一性判断

發(fā)布時間:2025/4/16 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android设备唯一性判断 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前段時間項目需要一個功能,就是在操作完某一個邏輯之后返回給客戶一個紅包,安全校驗團隊需要我們提供android設備的唯一標示,起初直接通過獲取設備的imei號傳給了server端,后臺公司云跡監(jiān)控發(fā)現(xiàn),有些設備的imei號是0000000000000000,這樣失去了設備唯一性驗證的功能,第二個版本做了一個修復,除了獲取imei號之外還新增了AndrdoiId的處理,不過悲劇的是android 設備實在是太多太雜了,僅僅通過這兩個維度去確定設備的唯一性還是有一些漏洞的,最終我們的解決方案是盡量多的獲取與設備相關(guān)的信息,最后做一個MD5數(shù)字加簽,基本滿足了這個需求

[java]?view plaincopy
  • package?com.suning.mobile.epa;??
  • ??
  • import?java.security.MessageDigest;??
  • import?java.security.NoSuchAlgorithmException;??
  • ??
  • import?android.content.Context;??
  • import?android.os.Build;??
  • import?android.provider.Settings.Secure;??
  • import?android.telephony.TelephonyManager;??
  • ??
  • public?class?DeviceFactoty?{??
  • ???
  • ??
  • ????//?buildId??
  • ????public?String?m_szDevIDShortMaker()?{??
  • ????????String?m_szDevIDShort?=?"35";??
  • ??
  • ????????m_szDevIDShort?+=?Build.BOARD.length()?%?10?+?Build.BRAND.length()?%?10??
  • ????????????????+?Build.CPU_ABI.length()?%?10?+?Build.DEVICE.length()?%?10??
  • ????????????????+?Build.DISPLAY.length()?%?10?+?Build.HOST.length()?%?10??
  • ????????????????+?Build.ID.length()?%?10?+?Build.MANUFACTURER.length()?%?10??
  • ????????????????+?Build.MODEL.length()?%?10?+?Build.PRODUCT.length()?%?10??
  • ????????????????+?Build.TAGS.length()?%?10?+?Build.TYPE.length()?%?10??
  • ????????????????+?Build.USER.length()?%?10?+?"";??
  • ??
  • ????????return?m_szDevIDShort;??
  • ????}??
  • ??
  • ??
  • ??
  • ????public?String?currentDeviceMark(Context?context)?{??
  • ????????final?TelephonyManager?tm?=?(TelephonyManager)?context??
  • ????????????????.getSystemService(Context.TELEPHONY_SERVICE);??
  • ??
  • ????????final?String?tmDevice,?tmSerial,?androidId;??
  • ????????tmDevice?=?""?+?tm.getDeviceId();??
  • ????????tmSerial?=?""?+?tm.getSimSerialNumber();??
  • ????????androidId?=?""??
  • ????????????????+?android.provider.Settings.Secure.getString(EPApp.getApp()??
  • ????????????????????????.getContentResolver(),?Secure.ANDROID_ID);??
  • ????????String?serial?=?"";??
  • ????????if?(Build.VERSION.SDK_INT?>?Build.VERSION_CODES.FROYO){??
  • ????????????serial?=?Build.SERIAL;??
  • ????????}??
  • ????????String?m_szLongID?=?tmDevice?+?tmSerial?+?androidId?+?serial??
  • ????????????????+?m_szDevIDShortMaker();??
  • ????????MessageDigest?m?=?null;??
  • ????????try?{??
  • ????????????m?=?MessageDigest.getInstance("MD5");??
  • ????????}?catch?(NoSuchAlgorithmException?e)?{??
  • ????????????e.printStackTrace();??
  • ????????}??
  • ????????m.update(m_szLongID.getBytes(),?0,?m_szLongID.length());??
  • ????????//?get?md5?bytes??
  • ????????byte?p_md5Data[]?=?m.digest();??
  • ????????//?create?a?hex?string??
  • ????????String?m_szUniqueID?=?new?String();??
  • ????????for?(int?i?=?0;?i?<?p_md5Data.length;?i++)?{??
  • ????????????int?b?=?(0xFF?&?p_md5Data[i]);??
  • ????????????//?if?it?is?a?single?digit,?make?sure?it?have?0?in?front?(proper?padding)??
  • ????????????if?(b?<=?0xF)??
  • ????????????????m_szUniqueID?+=?"0";??
  • ????????????//?add?number?to?string??
  • ????????????m_szUniqueID?+=?Integer.toHexString(b);??
  • ????????}?//?hex?string?to?uppercase??
  • ????????return?m_szUniqueID?=?m_szUniqueID.toUpperCase();??
  • ??
  • ????}??
  • } ?
  • 總結(jié)

    以上是生活随笔為你收集整理的Android设备唯一性判断的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。