Cryptography 在计算OTP时,如何对HMAC-MD5结果长度应用填充?

Cryptography 在计算OTP时,如何对HMAC-MD5结果长度应用填充?,cryptography,md5,hmac,javacard,one-time-password,Cryptography,Md5,Hmac,Javacard,One Time Password,在生成一次性密码时,我使用了hmac-md5算法(关于RFC2104),hmac结果是128位。当使用hmac-SHA1算法时,结果将为160位。我需要对hmac-md5结果应用填充以生成20字节。我应该使用哪些值作为填充 我需要对hmac-md5结果应用填充以生成20字节。我应该使用哪些值作为填充 对现有输出应用另一次哈希迭代。然后,使用所需的最左边的l位。当需要拉伸时,这类似于moder KDFs 从视觉上看,它可能看起来像: [ hash = HMAC(message

在生成一次性密码时,我使用了hmac-md5算法(关于RFC2104),hmac结果是128位。当使用hmac-SHA1算法时,结果将为160位。我需要对hmac-md5结果应用填充以生成20字节。我应该使用哪些值作为填充

我需要对hmac-md5结果应用填充以生成20字节。我应该使用哪些值作为填充

对现有输出应用另一次哈希迭代。然后,使用所需的最左边的l位。当需要拉伸时,这类似于moder KDFs

从视觉上看,它可能看起来像:

[            hash = HMAC(message)            ][ HMAC(hash) ]

这个问题似乎离题了,因为它是关于加密实践的。我应该怎么做才能与主题相关?编程任务(包括加密程序)也是如此,但加密最佳实践则不然。也许crypto.stackexchange.com?@ThomasM.DuBuisson是的,这是解释这不是OTP的最佳地方:)