2010-07-20 52 views
0

为了保护隐私,我需要在黑莓手机上对设备ID进行加扰。 当我调用函数DeviceInfo.getDeviceId()时,我得到了一个9个字符的数字。在Hexa中进行转换后,我获得了8个字符的设备的真实PIN码(或设备ID取决于您如何调用)。黑莓加扰设备ID为8个字符唯一

就像我说过的,对于隐私问题,我无法在个人数据库中存储PIN码。所以我想把ID加到唯一的一个,仍然是8个字符。如果我做MD5或其他加密,我总是得到一个包含超过8个字符的数字。

您是否知道从设备ID获取唯一8字符字符串的方法? 谢谢。

+0

我不明白BB PIN是私密的,人们在Facebook上给他们,就像他们给他们的电子邮件地址一样。如果您想保护连接,请改为使用HTTPS。 – 2010-07-20 22:13:05

+0

是的,我明白了。即使它不是私人的,我仍然不想存储它,因为我可以随时随地找到用户。所以我会找到一种方法来存储不同的唯一编号。 – Dachmt 2010-07-22 20:27:41

回答

1

您可以使用短分组密码来隐藏该消息。看看CBC-MAC的操作模式。

由于您想要的输出实际上只有4个字节长,您甚至可以使用CRC,如CRC32。

请注意,您需要一个“完美哈希”来避免重叠 - 既不是短密钥CBC-MAC也不是CRC32会为您提供完美的哈希。我强烈建议使用更长的散列函数。

+0

基本上,你告诉我使用另一种加密方法,如SHA或MD5例如? 我刚刚问过我的问题,因为我用8个字符的字符串将设备ID存储在数据库中,无法修改数据库。所以我需要有8个字符置乱的设备ID。 我第一次从DeviceInfo.getDeviceId()获取9个字符的结果,得到从0到8的子字符串并将其插入到我的数据库中,这样我无法检索设备ID(因为缺少1个字符)。但是这8个字符的唯一性并不是100%确定的。 – Dachmt 2010-07-20 18:30:31