随机访问加密文件并将加密数据写入Android中的特定偏移量

随机访问加密文件并将加密数据写入Android中的特定偏移量,android,encryption,aes,Android,Encryption,Aes,我有一个使用回调提供结果数据的库。然后,我首先使用CipherOutputStream加密AES,将数据写入文件。不幸的是,这个库似乎还需要重新查找已经提供(和编写)的数据来更改它。我可以在加密文件上这样做吗 据我所知,这可能与一些算法有关,比如AES ECB,它应该在Android上得到支持。这是对的还是我错了 假设库要求我寻找40个字节的偏移量并写入一些字节,如果可能的话,我如何做到这一点?每次更改时,整个文件都必须使用新的初始化向量重新加密。任何其他方法都是不安全的 ECB模式支持无需重新

我有一个使用回调提供结果数据的库。然后,我首先使用CipherOutputStream加密AES,将数据写入文件。不幸的是,这个库似乎还需要重新查找已经提供(和编写)的数据来更改它。我可以在加密文件上这样做吗

据我所知,这可能与一些算法有关,比如AES ECB,它应该在Android上得到支持。这是对的还是我错了


假设库要求我寻找40个字节的偏移量并写入一些字节,如果可能的话,我如何做到这一点?

每次更改时,整个文件都必须使用新的初始化向量重新加密。任何其他方法都是不安全的


ECB模式支持无需重新加密的随机访问,但ECB本身不满足“安全”要求。CBC模式不支持随机访问。CTR模式确实支持随机访问,但您决不能以这种方式使用它,因为它被视为非重复使用,这会导致明文恢复。

您能更好地解释一下吗“但ECB本身并不满足“安全”要求”?ECB泄露了大量有关明文的信息。维基百科对它的一些缺点有一个很好的解释:我已经知道那篇文章了,这就是我首先询问欧洲央行的原因。因此,假设它对我的具体情况足够安全,什么是最好的方法?ECB对于任何事情都没有足够的安全性-没有理由甚至考虑它。唯一安全的方法是重新加密整个文件,其他人也是这样做的。