Android唯一识别号(设备指纹)的生成及原理

本文介绍了如何在Android中生成唯一的设备识别号,即设备指纹。目标是在不刷机或恢复出厂设置的情况下,确保同一设备的设备指纹保持不变,同时不同设备的指纹不同。主要方法是结合IMEI号、手机硬件信息和Android ID,通过MD5加密生成32位的字符串。参考了友盟UMID的方案解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的:

尽可能实现,同一设备在不刷机不恢复出厂的情况下,每次生成的设备指纹不变;并且尽可能保证两部不同的设备生成的设备指纹不能一样)

原理:

1.将imei号+手机硬件信息+androidID拼接成一个字符串(由于个别手机某些时候获取的wifi MAC和蓝牙MAC不一致,故舍去这两项);
2.再用MD5把以上信息处理成32位的字符串;

参考:移动应用统计唯一ID的基本原理及 友盟UMID 方案解析

代码实现如下:

/** 
 * 获取设备指纹的工具类 
 * 
 * @author BarryHuang 
 * @DATE 2015-8-19 
 */  

public class FingerprintUtil {
   
     
    private static final String TAG = FingerprintUtil.class.getSimpleName();  

    private static final String FINGER_PRINT = "fingerprint";  

    /** 
     * 获取设备指纹 
     * 如果从SharedPreferences文件中拿不到,那么重新生成一个, 
     * 并保存到SharedPreferences文件中。 
     * 
     * @param context 
     * @return fingerprint 设备指纹 
     */  
    public static String getFingerprint(Context context) {  
        String fingerprint = null;  
        fingerprint = readFingerprintFromFile
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值