为了保留密钥、初始向量和操作模式,并重置所有缓冲区等内容,调用doFinal()方法是正确的吗?
但是doFinal()会做额外的工作。我不需要之前的数据。
Cipher с=Cipher.getInstance("AES/CBC/PKCS7Padding");
с.init(Cipher.DECRYPT_MODE, key, iv);
....
void Decode(Cipher c)
{
c.doFinal();//reset cipher !?
//Start a new decoding session
....
}
Cipher
对象,怎么样? - Artjom B.Cipher
实例的状态,仅使用一个副本是一个非常糟糕的想法。Cipher
实例并不会占用太多资源,而且您可能需要一个新的初始化向量,对吧? - Maarten Bodewes