如何在Java中使用Skipjack(skip32)将数据库中的顺序整数随机化

如何在Java中使用Skipjack(skip32)将数据库中的顺序整数随机化,java,encryption,cryptography,jce,Java,Encryption,Cryptography,Jce,基于a,我在数据库中使用一个顺序整数作为记录ID。我想使用Skip32混淆整数ID。我找到了一个,但我不确定如何使用标准JCE API初始化它。我需要加密一个整数,必要时解密它。有人能给我举个例子吗?您找到的代码属于。你需要的不仅仅是这一个文件,而是整个软件包。以JCE包为例,将其作为提供程序安装。那么你应该可以使用 Cipher c = Cipher.getInstance("SKIPJACK"); 但实际上,与其使用不受支持的库(如Cryptix),不如使用该库(或其部分)更可取。他们有很

基于a,我在数据库中使用一个顺序整数作为记录ID。我想使用Skip32混淆整数ID。我找到了一个,但我不确定如何使用标准JCE API初始化它。我需要加密一个整数,必要时解密它。有人能给我举个例子吗?

您找到的代码属于。你需要的不仅仅是这一个文件,而是整个软件包。以JCE包为例,将其作为提供程序安装。那么你应该可以使用

Cipher c = Cipher.getInstance("SKIPJACK");
但实际上,与其使用不受支持的库(如Cryptix),不如使用该库(或其部分)更可取。他们有很多文档,还有一个

我不知道为什么你需要使用Skipjack而不是JRE附带的任何密码,只是为了更小的块大小


如果我理解正确的话,Skip32是一个单独的密码(处理4字节的块),只是按照类似的原则构建,比如Skipjack(处理8字节的块)。我没有找到它的任何规范,只有一些C和Perl源代码,所以我怀疑会有一些Java实现可用。请查看Wikipedia或Cryptography Stack Exchange,它们显示了从较大的分组密码构建小型分组密码的其他方法。

您可能会发现,使用分组密码的安全置换对于了解如何实现它很有用。任何具有足够短的块大小的分组密码都足够。

如果可能,我希望使用JRE中已经包含的内容。Skipjack刚被推荐给我。我只需要从我的数据库中混淆顺序整数ID,并消除混淆。如果您知道一个可以在JRE中实现这一点的实现,我将非常感谢您举一个例子。我希望输出中只有6-12个字符。您能帮助我实现您使用的实现吗?