使用Java的DES实现加密单个(64位)块的最有效方法?

时间:2013-04-28 11:08:58

标签: java performance des

我有一种使用Java的DES实现加密单个(64位)块的方法。

public BitSet encrypt(BitSet plaintextBlock, BitSet key)
{
    try {
        Cipher c = Cipher.getInstance("DES/ECB/NoPadding");
        SecretKeyFactory sf = SecretKeyFactory.getInstance("DES");
        Key desKey = sf.generateSecret(new DESKeySpec(key.toByteArray()));
        c.init(Cipher.ENCRYPT_MODE, desKey);
        byte[] input = plaintextBlock.toByteArray();
        byte[] encrypted = c.doFinal(input);

        return BitSet.valueOf(encrypted);
    } catch (Exception e) { /* Exception handling omitted */ }
}

plainTextBlock将始终小于或等于64位。填充和链接是单独实现的。这种方法很好,但结果却很慢。

所以我的问题是:是否有更有效的方法使用Java的DES加密单个块?

0 个答案:

没有答案