根据上一个问题,我在我的数据库中使用顺序整数作为记录 ID。我想使用 Skip32 混淆整数 ID。我找到了一个Java 实现,但我不确定如何使用标准 JCE API 对其进行初始化。我需要加密一个整数并根据需要对其进行解密。谁能给我看一个例子?
问问题
2163 次
2 回答
2
您找到的代码属于Cryptix 项目。您不仅需要这一个文件,还应该获取整个软件包。获取 JCE 包,将其安装为提供程序。然后你应该可以使用
Cipher c = Cipher.getInstance("SKIPJACK");
但实际上,与其使用不受支持的库(如 Cryptix),不如使用BouncyCastle库(或其部分)可能更值得推荐。他们有很多文档,还有一个SkipJack-implementation。
不过,我不确定您为什么需要使用 Skipjack 而不是 JRE 附带的任何密码 - 只是为了更小的块大小?
如果我理解正确,Skip32 是一个单独的密码(适用于 4 字节块),只需按照类似于 Skipjack 的原理构建(适用于 8 字节块)。我没有找到它的任何规范,只有一些 C 和 Perl 源代码,所以我怀疑是否会有一些 Java 实现可用。看看Wikipedia上的Format-preserving encryption ,或者在给定常规块大小的强块密码的情况下,你能创建一个具有小块大小的强块密码吗?在 Cryptography Stack Exchange 上,展示了从较大的密码构建小块密码的其他方法。
于 2011-10-17T18:55:39.110 回答
1
您可能会发现这篇关于使用分组密码的安全排列的博客文章对于弄清楚如何实现它很有用。任何具有足够短块大小的块密码就足够了。
于 2011-10-17T23:54:40.610 回答