当前位置: 首页 > 面试题库 >

使用DigestInputStream从同一个InputStream计算多个校验和

尉迟远
2023-03-14
问题内容

我试图弄清楚如何基于相同的InputStream使用读取多个摘要(md5,sha1,gpg)DigestInputStream。根据我在文档中检查的内容,似乎可以通过克隆摘要来实现。有人可以说明一下吗?

我不想重新读取流以计算校验和。


问题答案:

您可以递归地将a包裹DigestInputStream起来DigestInputStream,依此类推:

DigestInputStream shaStream = new DigestInputStream(
    inStream, MessageDigest.getInstance("SHA-1"));
DigestInputStream md5Stream = new DigestInputStream(
    shaStream, MessageDigest.getInstance("MD5"));
// VERY IMPORTANT: read from final stream since it's FilterInputStream
byte[] shaDigest = shaStream.getMessageDigest().digest();
byte[] md5Digest = md5Stream.getMessageDigest().digest();


 类似资料:
  • 问题内容: 我想知道是否有任何意识形态的方法将多个InputStream链接到Java(或Scala)的一个连续InputStream中。 我需要的是解析从FTP服务器通过网络加载的平面文件。我要做的是获取文件[1..N],打开流,然后将它们组合为一个流。因此,当file1结束时,我想从file2开始读取,依此类推,直到到达fileN的末尾。 我需要按特定顺序读取这些文件,数据来自遗留系统,该系统

  • 问题内容: 我在Sqlite中有一个查询,其中涉及复杂的列计算,可以这样说: 我想将此计算选择为,但我还需要将其用作另一种计算的组成部分: 不幸的是,这会产生错误: 我知道我可以简单地重复计算: 但是,假设操作复杂且昂贵,是否有什么方法可以在以后重新引用它而不必重新计算呢? 问题答案: 您需要使用子查询。 结果

  • 问题内容: Python网站上是否有官方文档,内容涉及如何在Linux的同一台计算机上安装和运行多个版本的Python? 我可以找到成千上万的博客文章和答案,但是我想知道是否有“标准”的官方方式来做到这一点? 还是全部取决于操作系统? 问题答案: 我认为这是完全独立的。只需安装它们,然后即可使用命令例如和。链接到您要用作默认值的那个。 无论如何,所有库都位于单独的文件夹中(以版本命名)。 如果要手

  • 本文向大家介绍一个计算身份证号码校验位的Python小程序,包括了一个计算身份证号码校验位的Python小程序的使用技巧和注意事项,需要的朋友参考一下 S = Sum(Ai * Wi), i=0,.......16 (现在的身份证号码都是18位长,其中最后一位是校验位,15位的身份证号码好像不用了) Ai对应身份证号码,Wi则为用于加权计算的值,它一串固定的数值,应该是根据某种规则得出的吧,用于取

  • 在计算皮尔逊相关性时,下面的脚本对我来说也适用于相同的数据。我最近对其进行了调整,创建了一个协方差矩阵,以输入到pca中。我在论坛上读到,输入预先创建的协方差矩阵可能会避免记忆问题,但我的情况并非如此。运行协方差矩阵时,我会出现以下错误: 有人能提出一个更有效的方法来做到这一点,这样我就不会遇到内存问题了吗?如果我在计算协方差方面完全偏离了基础,那很好。PCA是我最终唯一需要的东西。我的数据是12

  • 我正在尝试使用一个函数从pandas数据帧中的多个列计算多个列。该函数接受三个参数-a-、-b-和-c-,并返回三个计算值-sum-、-prod-和-quot-。在我的pandas数据框架中,我有三个列-a-、-b-和-c-我想从中计算列-sum-、-prod-和-quot-。 我所做的映射只有在正好有三行时才起作用。我不知道出了什么问题,尽管我认为这与选择正确的轴有关。有人能解释一下发生了什么,