我需要在Blackberry上加密设备ID以保护隐私。 当我调用函数DeviceInfo.getDeviceId()时,我得到一个9个字符的数字。在Hexa中转换后,我得到了8个字符的设备的真实PIN码(或设备ID取决于你如何称呼它)。
就像我说的那样,对于隐私问题,我不能像我的数据库那样存储PIN。所以我想把ID加到一个独特的ID,仍然是8个字符。如果我进行MD5或其他加密,我总是得到一个包含8个以上字符的数字。
您是否知道如何从设备ID获取唯一的8个字符的字符串? 谢谢。
答案 0 :(得分:1)
您可以使用短分组密码来阻止消息。看看CBC-MAC的运作模式。
由于您想要的输出实际上只有4个字节长,您甚至可以使用CRC,例如CRC32。
请注意,您需要一个“完美哈希”才能没有重叠 - 短键CBC-MAC或CRC32都不会给您一个完美的哈希值。我强烈建议使用更长的哈希函数。