对SHA-256感到好奇?这个项目教你如何可视化哈希函数的工作原理
机器之心编辑部
哈希算法到底是什么?它又是如何运行的?Greg Walker 用视频给出了一个可视化的解答,并在 GitHub 上进行了共享,详细介绍了 SHA-256 函数的工作原理。
动画展示 SHA-256,你也能做到
# simple
ruby sha256.rb abc
# hash binary or hex data by using `0b` or `0x` prefixes
ruby sha256.rb 0b01100001
ruby sha256.rb 0xaabbccdd
# speed up or step through the animation (optional)
ruby sha256.rb abc normal # default
ruby sha256.rb abc fast
ruby sha256.rb abc enter
ruby shr.rb 11111111111111110000000000000000 22
ruby rotr.rb 11111111111111110000000000000000 22
ruby sigma0.rb 11111111111111110000000000000000
ruby sigma1.rb 11111111111111110000000000000000
ruby usigma0.rb 11111111111111110000000000000000
ruby usigma1.rb 11111111111111110000000000000000
ruby ch.rb 11111111111111110000000000000000 11110000111100001111000011110000 00000000000000001111111111111111
ruby 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 中拉合作奏响全球南方发展新乐章 7904204
- 2 京东美团等外卖平台被五部门约谈 7809586
- 3 DeepSeek回应“崩了” 7713414
- 4 看看中国经济发展的质量成色 7619353
- 5 耗资10亿的豪宅将强拆 官方回应 7521626
- 6 火车穿村被撞身亡者最小仅1岁半 7426400
- 7 65款APP违法收集个人信息遭通报 7329164
- 8 缅甸7.9级地震地表位移画面首曝光 7235556
- 9 美媒:特朗普与中国达成的协议像投降 7143967
- 10 平台推出“高退款人群屏蔽功能” 7046445