用例的业务环境是我们正在构建一个后端服务器(multi-tanent),该服务器将为来自多个平台(iOS,Android,Windows phone 7,BlackBerry,j2me电话)。该公司希望在第一次安装合作应用时对用户进行奖励。因此,企业希望跟踪第一次应用安装用户重新安装(删除&安装)用户。因此,我们希望合作的移动应用程序在安装&服务器后会将唯一标识符(使用我们在此决定的唯一标识符规范)发送到我们的后端服务器& &如果首次安装返回奖励。智能手机设备的唯一设备标识符
所以,理想情况下,我们只想在这里定义是唯一设备标识符规范用以下属性..
- 它应该是人生唯一久,设备类别(例如所有iOS设备)下。所以,Factory Reset等工具不应该改变设备标识符。
- 欺骗标识符不应该很容易。例如。你可以通过设备&上的软件工具重新安装应用程序,应用程序发回的标识符会发生变化。
- 底层平台提供API来检索规范中提到的必要信息。也就是说,没有私人API等,因为应用程序将通过开放市场(App Store等)进行部署。
- 由于解决方案是全球性的,因此该规范应该是全球真实的。因此,应该尊重所有国家的法律。
- 请注意,解决方案想要定位所有平台的设备;不仅仅是基于SIM卡的手机,甚至还有基于非SIM卡的移动设备(ipod touch,ipad)。 [所以,唯一的IMEI号码不在非SIM移动设备上,但可以在其上安装应用程序]
期待创新的大脑来讨论这一点。
感谢您阅读本文。从MSDN
object DeviceUniqueID;
byte[] DeviceIDbyte=null;
if (DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out DeviceUniqueID))
DeviceIDbyte = (byte[])DeviceUniqueID;
string DeviceID = Convert.ToBase64String(DeviceIDbyte);
MessageBox.Show(DeviceID);
描述:
嗯,我知道IMEI可以伪造(设备标识符),但IMSI? IMSI应该至少与您的'最佳'解决方案一样安全,如果不是更安全的话。 – Yusufk 2012-04-04 07:03:21
问题是,原始海报假定设备会给出正确的IMEI或IMSI,因为他无法在设备上物理验证IMEI/IMSI,而设备发送的IMEI/IMSI不能被信任为有效。因此,如果您希望并相信设备(或任何第三方)向您提供有效信息,那么绝对是错误地构建了您的产品。 – 2012-04-04 07:22:12
IMEI是设备给你的东西,但IMSI会从SIM卡中查询。我知道编辑IMEI的方法,它会覆盖手机固件上存储的值,但IMSI是网络分配给SIM卡的内容,几乎不可能覆盖。 – Yusufk 2012-04-04 08:47:27