SHA-256算法流程

SHA-256是一种密码学哈希函数,通过特定步骤处理输入消息,产生固定长度的256位哈希值。算法涉及消息填充、初始化8个寄存器、循环计算和位操作。每一步都确保了对输入消息的敏感性,任何更改都将导致完全不同的哈希输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SHA-256

输入消息:M

输出消息:256位(bit)hash值

步骤:

  1. 消息填充:M的长度 mod 512 = R,考虑R(R为输入消息长度按512bit进行分组后,最后一组的长度)

    • R < 448,在最后一组的末尾填充1个“1”及若干个“0”,使最后一组位数达到448;再在这448位的基础上填充64位,这64位是M的原始长度的二进制表示。
      1   0000... ⏟ 448 − R   输 入 消 息 的 长 度 的 二 进 制 ⏟ 64 b i t \underbrace{1\ 0000...}_{448-R}\ \underbrace{输入消息的长度的二进制}_{64bit} 448R 1 0000... 64bit

    • R >= 448,在最后一组的末尾填充1个“1”及若干个“0”,使最后一组位数达到512;再新增一组,添加448个“0”和64位消息M的原始长度的二进制表示。
      1   00... ⏟ 512 − R 000... ⏟ 448 b i t 输 入 消 息 的 长 度 的 二 进 制 ⏟ 64 b i t ⏟ 512 b i t \underbrace{1\ 00...}_{512-R} \quad \underbrace{\underbrace{000...}_{448bit}\underbrace{输入消息的长度的二进制}_{64bit}}_{512bit} 512R 1 00...512bit 448bit 000...64bi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值