对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 潮涌海之南 开放风正劲 7904760
- 2 2262年两个春节只放1次假 7808765
- 3 小车刹车失灵狂奔490公里 油耗尽才停 7714332
- 4 海南封关开放大幕拉开 谁的机会来了 7617126
- 5 北方女孩吐槽老被南方室友催着洗澡 7519866
- 6 男子盘四年的文玩核桃竟是塑料制品 7427443
- 7 海南封关首日居民排长队买榴莲 7329487
- 8 女孩穿“光腿神器”进急诊 医生提醒 7233519
- 9 广西发现稀有血型“恐龙血” 7144016
- 10 国际航班外籍男子辱骂骚扰中国女生 7045103








机器之心
