我有一个使用回调提供结果数据的库。然后,我通过首先使用CipherOutputStream进行AES加密将数据写入文件。不幸的是,似乎这个库需要寻找已经提供的(和写入的)数据来改变它。我可以在加密文件上以某种方式执行此操作吗?
我的理解是,这可能适用于某些算法,例如AES ECB,Android应该支持这些算法。这是正确的还是我错了?
假设库要求我寻求40字节的偏移量并写入一些字节,如果可能的话,我怎么能这样做呢?
答案 0 :(得分:-1)
每次更改时,必须使用新的初始化向量重新加密整个文件。任何其他方法都是不安全的。
ECB模式支持随机访问而无需重新加密,但ECB不满足“安全”要求本身。 CBC模式不支持随机访问。 CTR模式确实支持随机访问,但您绝不能以这种方式使用它,因为它会被视为nonce重用,从而导致明文恢复。