gpt4 book ai didi

java - 如何将解密的文本文件字节 block 转储到 InputStreamReader 中?

转载 作者:行者123 更新时间:2023-12-02 07:12:22 25 4
gpt4 key购买 nike

在 CBC 解密循环中,我正在处理小(< 32 字节)字节 block ,因此我无法使用 StringBuilder,因为堆会爆炸。我想我应该将解密的字节转储到某种缓冲数组中。此时,我对如何从这些字节设置和填充 InputStreamReader 感到困惑。如果我可以填充这个InputStreamReader,那么我想在它周围包装一个BufferedReader。然后,我计划一次从 BufferedReader 读取一行,因为我的文本处理只需要一次操作一行。我不想在此过程中将任何数据写入磁盘。我只是非常困惑如何处理从 CBC 解密循环中获得的字节。他们显然需要缓冲(因为我的文本文件的一行可能是解密 block 大小的 20 倍),但我对充当中间人的缓冲区感到困惑。我正在使用 BouncyCaSTLe,但目前这个难题并没有真正给我带来问题。 ~感谢新手的帮助。

最佳答案

从解密 block 中获取字节,并将它们转储到 PipedOutputStream 中。然后从中创建一个 PipedInputStream,适当包装,并将其提供给您的其他代码。

这最好在两个单独的线程中完成。它可能适用于其中一种,但你必须小心不要阻塞(尤其是阅读),否则你会被卡住。

或者您可以在解密器上编写自己的自定义 InputStream 实现。

关于java - 如何将解密的文本文件字节 block 转储到 InputStreamReader 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15350675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com