有人可以帮我清理一下 MDC 和数据加密吗?在 RFC 4880 中,它说:
待加密数据的明文通过SHA-1散列函数,散列结果附加到明文中的修改检测码包中。哈希函数的输入包括上述前缀数据;它包括所有明文,然后还包括值 0xD3、0x14 的两个八位字节。这些表示修改检测代码数据包标记的编码和 20 个八位字节的长度字段。
起初,mdc(没有标头数据)似乎只是:sha1([data]) -> hash_value
然后分号之前的第二句话使它看起来像sha1(OpenPGP_CFB_extra_data + [data]) -> hash_value
分号后面的东西看起来像是我应该做的sha1([data] + "\xd3\x14") -> hash_value
。(这根本没有意义,但似乎是这样写的)
到底是怎么回事?
获得正确的 MDC 后,如何处理它?它是它自己的数据包,还是类似的东西(根据我的理解)?:
tag18_header + encrypt(plaintext + "\xd3\x14" + 20 byte hash)