0

为了隐私问题,我需要在黑莓上打乱设备 ID。当我调用函数 DeviceInfo.getDeviceId() 时,我得到一个 9 个字符的数字。在 Hexa 中转换后,我得到了 8 个字符的设备的真实 PIN 码(或设备 ID 取决于你如何称呼它)。

就像我说的那样,出于隐私问题,我无法将 PIN 原样存储在我的数据库中。所以我想将 ID 打乱为一个唯一的,仍然是 8 个字符。如果我进行 MD5 或其他加密,我总是得到一个包含 8 个以上字符的数字。

你知道从设备 ID 中获取唯一的 8 个字符串的方法吗?谢谢你。

4

1 回答 1

1

您可以使用短分组密码来混淆消息。查看 CBC-MAC 操作模式。

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

请注意,您需要一个“完美哈希”才能没有重叠 - 短键 CBC-MAC 或 CRC32 都不会为您提供完美的哈希。我强烈建议使用更长的哈希函数。

于 2010-07-20T18:19:02.630 回答