MD2哈希填充

本文关键字:填充 哈希 MD2 | 更新日期: 2023-09-27 18:29:03

是的,它既旧又坏,但我正在努力理解MD2是如何工作的,所以我试图用C#对它进行编码。到目前为止,我已经找到了看起来应该很简单的填充物,但我不确定它到底是如何工作的。https://www.rfc-editor.org/rfc/rfc1319给出了一个很好的解释,但是c中的例子很难理解填充的来源。我很困惑,为什么在示例代码中,编号停止在7,然后继续到10,就好像两个4位块的编号从0到7一样。

我写这篇文章是为了复制它,这会以它应该工作的方式返回填充吗?

public static byte[] getPadding(int number_needed)
        {
            byte[] temp = new byte[number_needed];
            for (int i = 0; i < temp.Count(); i++)
            {
                temp[i] = BitConverter.GetBytes(number_needed)[0];
            }
            return temp;
        }

MD2哈希填充

根据我对RFC的理解,所有填充字节都具有填充字节总数的值。因此,如果需要添加5个填充字节,则添加值为0x05的5个字节。

在代码示例中,他们必须使用八进制表示法——从01-07开始,然后是(八进制)10、11、12…16、17、20。不过,十进制值仍然是01-16(填充从不为0字节)。