使用UDID创建唯一的用户身份

tam*_*gal 15 iphone objective-c udid ios

我正在开发一个与服务器通信以存储和交换数据的iPhone应用程序.由于我希望尽可能简单,我想避免为用户帐户注册(或mybe也使用密码).是否可以(并允许?)获取iPhone设备的UDID并制作例如.它的MD5哈希值,我转移到服务器并用它进行身份验证?由于此ID是唯一的,因此我可以简单地使用它来登录并从服务器获取用户指定的数据,而无需创建登录数据.

是否允许访问UDID,对其进行MD5哈希并将其存储在数据库中?

第二个问题是:我如何获得UDID?;-)

Mas*_*aro 15

是的,这是允许的,但请从文档中考虑我在下面报告的内容.

您可以按如下方式检索UDID:

NSString *udid = [[UIDevice currentDevice] uniqueIdentifier];
Run Code Online (Sandbox Code Playgroud)

请注意Apple官方文档中的以下内容:

设备的唯一标识符(有时缩写为唯一设备标识符的UDID)是由各种硬件标识符(例如设备序列号)组成的散列值.保证每个设备都是唯一的.UDID独立于设备名称.对于使用SIM(用户识别模块)卡的设备,UDID独立于SIM卡.

为了用户安全和隐私,您不得将设备的唯一标识符与用户帐户公开关联.

您可以将UDID与特定于应用程序的用户ID结合使用,以识别服务器上的特定于应用程序的数据.例如,您可以使用设备用户组合ID来控制对已注册产品的访问,或者在中央服务器中存储游戏的高分.但是,如果您正在开发游戏,则可能需要使用Game Center的玩家标识符键,如游戏套件编程指南中所述.

重要信息:永远不要仅基于UDID存储用户信息.始终使用UDID和特定于应用程序的用户ID的组合.组合ID可确保如果用户将设备传递给其他用户,则新用户将无法访问原始用户的数据.

  • `[[UIDevice currentDevice] uniqueIdentifier]`在iOS 5.0中已弃用,请改用`CFUUIDCreate()`! (2认同)