2020.5.14 周四
留●白
宜
沉思
浮躁
忌
今日推荐
今瞅见一个关于哈希值生成演示的项目,挺好玩的样子。
关于sha256相信很多人都不陌生,尤其是经常会写接口啥的,在加密中这个哈希使用很频繁。但是这个值到底是怎么生成的,有人好奇么?
今天推荐的是用ruby写的小项目,可以在自己的终端上面运行,运行之后就能看到sha256生成的过程。
运行的步骤不难,只需要照下面的脚本运行就好
# 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
还可以通过传递二进制字符串作为参数来运行SHA-256中使用的各个函数:
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
还可以使用hash256.rb进行双SHA256(例如比特币)交易。默认情况下,此脚本接受十六进制数据(例如,块标题,交易数据)。关于sha256工作的具体原理,可以去项目里看看,作者摘录的很详细。
ruby hash256.rb 0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a29ab5f49ffff001d1dac2b7c # genesis block header
废话不多说,上地址:
https://github.com/NathanUA/U-2-Net
来源:GitHub(侵删) 图片:网络(侵删)
DESIGNED BY ZOE · 2020