Java md5算法添加2个md5值

Java md5算法添加2个md5值,java,algorithm,hash,Java,Algorithm,Hash,是否有添加2个md5值的算法 我们分部分处理数据。目前我有Jon Howell的算法。这就是我现在所做的 计算第一部分的消息摘要,该部分为 我可以将这3个值的组合存储在我的数据库中,然后重新创建此对象并处理第二部分 这创建了一个我们不想要的处理内容的顺序。我希望并行处理所有部分,这意味着我需要能够计算消息摘要算法中的md5加值2。有人尝试过这样的算法吗?没有。你不能从B中产生A和B的串联散列和A的散列 这是故意的。密码工程中的散列算法是按顺序设计的 如果您想将B添加到已经从A计算出的值上,则需要

是否有添加2个md5值的算法

我们分部分处理数据。目前我有Jon Howell的算法。这就是我现在所做的

  • 计算第一部分的消息摘要,该部分为
  • 我可以将这3个值的组合存储在我的数据库中,然后重新创建此对象并处理第二部分

  • 这创建了一个我们不想要的处理内容的顺序。我希望并行处理所有部分,这意味着我需要能够计算消息摘要算法中的md5加值2。有人尝试过这样的算法吗?

    没有。你不能从B中产生A和B的串联散列和A的散列

    这是故意的。密码工程中的散列算法是按顺序设计的

    如果您想将B添加到已经从A计算出的值上,则需要对A进行散列处理后的散列函数的整个状态,这将不仅仅是它在该点上的输出


    不过,您可以做的是计算H(H(A)。H(B))。这当然不一样,但它会给你一个a和B的加密安全指纹。

    你能澄清一下你希望用它实现什么吗?我不能确切地告诉你你在问什么,但是两个MD5输入的MD5是可能的(并且将是一个唯一的新哈希值)。从两个MD5输入计算出的MD5也应该等于内容总和的MD5,这是不可能的。加密安全散列不是这样工作的。
    private int buf[];    // These were originally unsigned ints.
              // This Java code makes an effort to avoid sign traps.
              // buf[] is where the hash accumulates.     
    long bits;    // This is the count of bits hashed so far.     
    byte in[];    // This is a buffer where we  stash bytes until we have
              // enough (64) to perform a transform operation.