思量. 2021-06-27 20:29 采纳率: 50%
浏览 15

HASH MD5 密码学

2、在HASH函数MD5算法中, 报文长度为256比特和512比特时,解答下面的问题。
1)构成几个分组?
2)画图说明每个分组的填充位和长度位内容(提示:使用二进制数表示,连续n个0可表示为0(n)。)

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-06 00:26
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    1) 当报文长度为256比特时,构成一个分组,当报文长度为512比特时,构成两个分组。 2) 对于256比特的报文,填充位的内容为1后面跟着若干个0,使得分组的长度为512比特。长度位的内容为报文的长度(以比特为单位)的二进制表示,用64比特表示。例如,对于长度为200比特的报文,填充位为1后面跟312个0,长度位为11001000(200的二进制表示)的二进制表示再加上448个0。对于512比特的报文,填充位的内容为1后面跟着若干个0,使得该分组的长度为1024比特。长度位的内容同样为报文的长度(以比特为单位)的二进制表示,用64比特表示,放在第二个分组的末尾。例如,对于长度为400比特的报文,第一个分组的填充位为1后面跟624个0,长度位为011001000(400的二进制表示)的二进制表示再加上1200个0,第二个分组的填充位为1后面跟440个0,长度位为011001000(400的二进制表示)的二进制表示。 示例代码如下(Python实现):
    import hashlib
    # 将字符串转为MD5摘要
    def get_md5(s):
        md5 = hashlib.md5()
        md5.update(s.encode('utf-8'))
        return md5.hexdigest()
    # 构造256比特的报文
    message = 'abcdefghijklmnopqrstuvwxyz'
    md5_digest = get_md5(message)
    print('Original message:', message)
    print('MD5 digest:', md5_digest)
    # 构造512比特的报文
    message_512 = message * 2
    md5_digest_512 = get_md5(message_512)
    print('Original message:', message_512)
    print('MD5 digest:', md5_digest_512)
    
    评论

报告相同问题?

悬赏问题

  • ¥15 找一个QT页面+目标识别(行人检测)的开源项目
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败
  • ¥15 用Ros中的Topic通讯方式控制小乌龟的速度,走矩形;编写订阅器代码
  • ¥15 LLM accuracy检测
  • ¥15 pycharm添加远程解释器报错
  • ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口