是的,它已经破旧了,但是我想了解MD2是如何工作的,所以我试图用C#编写代码。到目前为止,我已经得到了看起来应该很简单的填充,但我不确定它是如何工作的。 http://tools.ietf.org/html/rfc1319给出了一个很好的解释,但c中的例子很难理解填充的来源。我很困惑为什么在示例代码中编号在7处停止然后继续到10,就好像它从0到7为两个4位块一样。
我写这个是为了复制它,这会以它应该的方式返回填充吗?
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;
}
答案 0 :(得分:0)
据我了解RFC,所有填充字节都具有填充字节总数的值。因此,如果您需要添加5个填充字节,则添加5个字节的值0x05。
他们必须在代码示例中使用octal表示法 - 从01-07开始,然后是(八进制)10,11,12 ... 16,17,20。小数值仍为01 -16,但是(填充从不是0字节)。