我以为很聪明地使用了Android的安全唯一ID的各种哈希和排列方式来识别我的用户...
但事实证明,9774d56d682e549c是由某些低版本的Android设备返回的一个特殊ID。
Secure.getString(getContentResolver(), Secure.ANDROID_ID);
对于许多设备来说......似乎我构建的每个模拟器都具有相同的ID,而许多其他人的手机(很多Moto Droid!)和刷过的操作系统修改 tend to返回此相同重复值。非MotoDroid /非刷机的手机似乎都会给我返回一个唯一的字符串。但是这个重复值在我的数据库中出现了大约60次!
我将优化我的应用程序以在注册之前检查该字符串,但处理它以获得另一个唯一值的推荐方法是什么?
我目前的想法是检查它,生成一个极大的随机值,进行散列处理,然后将其存储在SharedPreferences
中,然后使用ANDROID_ID或存储在sharedprefs中的值(如果用户的手机提供该值)。是否有更好的想法,或者这个方案足够坚固以避免这个疯狂的bug?