首先,
byte[] iv = {00000000000000000000000000000000};
创建一个大小为1的字节数组,而不是大小为32的字节数组(如果您打算这样做)。
其次,AES的IV大小应为16字节或128位(这是AES-128的块大小)。如果使用AES-256,则IV大小应为128位大,因为AES标准仅允许128位块大小。原始的Rijndael算法允许其他块大小,包括256位长的块大小。
第三,如果您打算使用AES-256,则不要开箱即用。您需要下载并安装JCE无限强度管辖权策略文件(滚动到页面底部);我还建议您阅读随附的许可证。
这将对您的代码进行以下更改:
byte[] iv = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
最后,初始化向量是唯一且不可预测的。一个16字节的序列(每个字节由0表示)不适合用于IV。如果这是生产代码,请考虑寻求帮助。