2、在HASH函数MD5算法中, 报文长度为256比特和512比特时,解答下面的问题。
1)构成几个分组?
2)画图说明每个分组的填充位和长度位内容(提示:使用二进制数表示,连续n个0可表示为0(n)。)
HASH MD5 密码学
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 让阿豪来帮你解答,本回答参考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 如何让子窗口鼠标滚动独立,不要传递消息给主窗口