使用DES加密整数值

时间:2011-08-05 17:21:53

标签: java encryption cryptography encryption-symmetric des

我想用DES加密整数,生成的密文也应该是整数。

解密功能也应该遵循这个概念。

我试图通过将字节数组转换为整数而不是使用Base64编码来修改Encrypting a String with DES处的代码。但是,解密函数会抛出不正确填充的异常,因为整数到byte []的转换会产生一个4字节的数组。

我是否可以使用其他加密算法来实现此目的。

  • 我并不关心密文的弱点。

3 个答案:

答案 0 :(得分:2)

如果您通过DES运行Integer值以产生另一个Integer值,并且您不关心密文弱点,那么您只是在进行非常昂贵的散列操作。你最好生成一个随机整数作为密钥,并按位对齐指数和随机整数。这需要几纳秒来计算并具有完全相同的安全性。

答案 1 :(得分:1)

DES具有64位块大小,因此通常32位int加密的输出将是64位块。将64位long加密到另一个64位long会更容易。使用ECB模式以便填充不是问题,或者至少在正int前面添加零位以将其扩展为64位。

如果你只是想要提醒你int,那么吉姆的建议非常好。

答案 2 :(得分:1)

您想查看Format Perserving Encryption。它有几种技术,但一般来说它们都会在输入的同一域中生成一个值(即整数,信用卡号等)