java - 使用 JCA 高效检查大型数据集的签名

标签 java security performance digital-signature jca

我必须验证可能大至 2Gb 的文件上的签名,并且我希望以尽可能节省内存的方式来执行此操作。由于各种原因,该文件已经完全加载到内存中,并由应用程序使用 InputStream 进行访问。我想使用流接口(interface)验证签名,但 JCA Signature 类的 update 方法仅接受 byte[] 和相关类。

我怎样才能有效地做到这一点?我不想将这头野兽加载到第二个字节数组中,否则我们会看到内存使用量非常高,但接口(interface)似乎不支持它。

更新

如果重要的话,签名算法是 SHA-1

最佳答案

为什么不一次读取输入流一个 block (4096 字节或任何方便的大小),为每个 block 调用 update() 。

关于java - 使用 JCA 高效检查大型数据集的签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/407990/

相关文章:

java - 为什么正则表达式组不起作用

java xml SchemaFactory - 使用不同命名空间的导入加载模式

c++ - 如何优化简单的高斯滤波器的性能?

php - Codeigniter:多次使用 $this->load->database() 会导致多个连接吗?

java - 读取类 'Date'的用户输入

java - 从字符串中提取字段值

PHP 安全性与包含

php - PHP 中的魔术引号

服务器上的 PHP 源代码安全

mysql - 在 mysql 中索引文本是否会改进使用 LIKE '%search%' 搜索文本