2016-11-10 32 views
0

我连续生成一个字符串,我需要写入本地文件(加密)。使用AES加密“数据流”

因为我的应用程序中已经有一个AES库,所以我宁愿使用AES - 如果可能的话。方法1:AES的块大小为16字节,所以我需要在内存中缓冲16字节的数据,如果计算机崩溃,我可能会丢失这些数据。方法2:首先将所有数据写入文件,并使用AES-CBC定期对整个文件进行加密。这样,用户可以在短时间内访问未加密的文件。

有没有其他办法?

+0

你希望电脑死机? – elyashiv

+0

不幸的是,是的。运行应用程序的计算机经常不能正常关机,而是刚刚断电 – user66875

+0

AES可作为流密码。一个出发点:http://security.stackexchange.com/questions/65085/using-aes-as-a-stream-cipher –

回答

-1

由于您可能无法将15个字节写入磁盘,请将您的数据填充到4KB的倍数(减去您需要的任何标题)并加密填充的数据。

+0

为什么要填充到4KB? AES通常填充为[PKCS#7填充](https://en.wikipedia.org/wiki/Padding_(加密)#PKCS7)。 – zaph

+0

@zaph:因为这就是你典型的文件系统所使用的(如果不是多个)。不要只关注加密部分,这里的问题是关于停电时的持久性。 – MSalters

+0

你垫您文本文件,二进制文件等还是你让系统,你知道,操作系统,为你做的。它不仅仅是在磁盘上获取它,需要创建目录条目并且必须运行分配例程,缓存被刷新。 – zaph