首页 文章

使用DES加密整数值

提问于
浏览
1

我想用DES加密一个整数,结果密文也应该是一个整数 .

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

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

是否有任何其他加密算法可用于实现此目的 .

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

3 回答

  • 1

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

  • 2

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

  • 1

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

    如果你只是想要了解你的话,那么吉姆的建议非常好 .

相关问题