Java加密AES函数

时间:2012-11-20 19:06:54

标签: java cryptography aes block-cipher

作为练习,我正在实施自己的CBC和CTR模式。 (例如,对于CBC的第一个区块,E(k, IV xor message[0])。

例如,我尝试了以下思考,我可以将其用作我的E函数(使用BouncyCastle):

Cipher cipher = Cipher.getInstance("AES/NONE/PKCS5", "BC");

但是'NONE'不是一种选择。

我的问题是如何将Java AES函数用于我的目的;我该怎么做E(k, ...)

2 个答案:

答案 0 :(得分:4)

通常,要构建自己的密码,您需要访问块模式操作。如果您只能访问更高级别的功能,则应使用ECB模式加密而不指定填充。给定密码和密钥,ECB模式独立地转换每个块。只应对块模式操作执行填充,即使只对最后一个块执行填充。

如果您要在Java Cryptographic Architecture中使用它,您将使用"AES/ECB/NoPadding"模式。

答案 1 :(得分:3)

我认为您想要做的是为Java Crypto API提供加密实现,这是通过创建和安装自定义Provider来完成的,后者又提供自定义Cipher实例。 Here is a nice piece of manual about it.