步骤1:将明文转换为二进制形式

  • 1234的二进制形式为00000000 00000000 00000100 11010010
  • 5678的二进制形式为00000000 00000000 00010110 00100110

步骤2:填充数据,使得长度为512位的整数倍

  • 填充方式为在二进制形式的末尾添加1,直到长度为448位
  • 然后再在末尾添加长度为64位的原始数据长度,即64位的二进制形式表示的长度
  • 1234的填充后的二进制形式为00000000 00000000 00000100 11010010 10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00001100 10001000
  • 5678的填充后的二进制形式为00000000 00000000 00010110 00100110 10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00010100 11001000

步骤3:将填充后的数据分为512位的块

  • 1234的512位块为00000000 00000000 00000100 11010010 10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00001100 10001000
  • 5678的512位块为00000000 00000000 00010110 00100110 10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00010100 11001000

步骤4:初始化MD5缓存

  • 将A、B、C、D四个32位寄存器初始化为以下值:
  • A = 0x67452301
  • B = 0xefcdab89
  • C = 0x98badcfe
  • D = 0x10325476

步骤5:按照MD5算法对每个512位块进行计算

  • 对于每个512位块,执行以下步骤:
    • 将A、B、C、D的值保存到临时变量a、b、c、d中
    • 对于每个16个32位子块,执行以下步骤:
      • 将16个子块按照顺序保存到临时变量x中
      • 计算第一轮迭代的函数F、G、H、I的值
      • 计算下一个轮次的A、B、C、D的值
    • 将a、b、c、d的值与当前的A、B、C、D的值相加,得到新的A、B、C、D的值
  • 最终得到的A、B、C、D的值即为MD5的结果

步骤6:将最终的A、B、C、D的值转换为16进制字符串

  • 最终的MD5值为2c189fd766913d815a5a5d41a4be7b7
明文可能为1234和5678 要求最后得到的MD5密文是2c189fd766913d815a5a5d41a4be7b78请帮我算出md5加密步骤 将所有的步骤写出来以及每个步骤对应的MD5值

原文地址: https://www.cveoy.top/t/topic/hdNQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录