对SHA-256感到好奇?这个项目教你如何可视化哈希函数的工作原理
机器之心编辑部
哈希算法到底是什么?它又是如何运行的?Greg Walker 用视频给出了一个可视化的解答,并在 GitHub 上进行了共享,详细介绍了 SHA-256 函数的工作原理。









动画展示 SHA-256,你也能做到
# simpleruby sha256.rb abc# hash binary or hex data by using `0b` or `0x` prefixesruby sha256.rb 0b01100001ruby sha256.rb 0xaabbccdd# speed up or step through the animation (optional)ruby sha256.rb abc normal # defaultruby sha256.rb abc fastruby sha256.rb abc enter
ruby shr.rb 11111111111111110000000000000000 22ruby rotr.rb 11111111111111110000000000000000 22ruby sigma0.rb 11111111111111110000000000000000ruby sigma1.rb 11111111111111110000000000000000ruby usigma0.rb 11111111111111110000000000000000ruby usigma1.rb 11111111111111110000000000000000ruby ch.rb 11111111111111110000000000000000 11110000111100001111000011110000 00000000000000001111111111111111ruby maj.rb 11111111111111110000000000000000 11110000111100001111000011110000 00000000000000001111111111111111
ruby hash256.rb 0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a29ab5f49ffff001d1dac2b7c # genesis block header
SHRn(x) = x >> n

x ^ y ^ z
(v + w + x + y + z) % 232
σ0(x) = ROTR7(x) ^ ROTR18(x) ^ SHR3(x)
σ1(x) = ROTR17(x) ^ ROTR19(x) ^ SHR10(x)
Σ0(x) = ROTR2(x) ^ ROTR13(x) ^ ROTR22(x)
Σ1(x)?=?ROTR6(x)?^?ROTR11(x)?^?ROTR25(x)
Ch(x, y, z) = (x & y) ^ (~x & z)
Maj(x, y, z) = (x & y) ^ (x & z) ^ (y & z)

T1 = Σ1(e) + Ch(e, f, g) + h + Kt + Wt
T2 = Σ0(a) + Maj(a, b, c)

关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 习近平将发表二〇二六年新年贺词 7904141
- 2 2026年国补政策来了 7808738
- 3 东部战区:开火!开火!全部命中! 7712893
- 4 2026年这些民生政策将惠及百姓 7616985
- 5 小学食堂米线过期2.5小时被罚5万 7519709
- 6 解放军喊话驱离台军 原声曝光 7428214
- 7 为博流量直播踩烈士陵墓?绝不姑息 7327605
- 8 每月最高800元!多地发放养老消费券 7238391
- 9 数字人民币升级 1月1日起将计付利息 7141831
- 10 2026年1月1日起 一批新规将施行 7040675









机器之心
