SHA-256算法流程分析与演示——github工程完善

https://github.com/in3rsha/sha256-animation

上面是原作者github代码,写的是相当吊,笔者将其代码进行进行了复现和SHA-256算法的学习如下文

https://blog.csdn.net/daviddou2022/article/details/149207087

除此之外,笔者在上一篇文章中也提到原作者的工程有可完善之处,主要是对于命令行输入参数这一块,因此笔者对于sha-256的功能进行完善,完整的工程如下:

https://github.com/daviddou2023/sha256-explanation

1、message.rb

不需要修改原代码

2、padding.rb

将红框标出的三行原代码改成下面的,原代码最终的message赋值是二进制,也就是说只有当命令行参数输入为二进制才能执行,但是考虑到message一般为字符串,所以做此修改。

复制代码
# Use command line argument if provided, else default to "abc"
  $input = ARGV[0] || "abc"  
  $message = $input.unpack("B*")[0] # Convert to binary string

3、blocks.rd

同padding.rd修改方式

复制代码
# Use command line argument if provided, else default to "abc"
  $input = ARGV[0] || "abc"  
  $message = $input.unpack("B*")[0] # Convert to binary string

4、schedule.rd

红框的代码换为下面的代码

5、expansion.rb

还是将input的部分同上修改,还需要注意的是将原代码中的block赋值部分删掉。

复制代码
# Use command line argument if provided, else default to "abc"
  $input = ARGV[0] || "abc"  
  $message = $input.unpack("B*")[0] # Convert to binary string

6、initial.rb

不涉及到输入参数,不需要修改,直接ruby initial.rb

7、t1.rb t2.rb

同理代码替换

复制代码
# Use command line argument if provided, else default to "abc"
  $input = ARGV[0] || "abc"  
  $message = $input.unpack("B*")[0] # Convert to binary string

8、compression.rb

复制代码
# Use command line argument if provided, else default to "abc"
  $input = ARGV[0] || "abc"  
  $message = $input.unpack("B*")[0] # Convert to binary string

9、final.rb

复制代码
# Use command line argument if provided, else default to "abc"
  $input = ARGV[0] || "abc"  
  $message = $input.unpack("B*")[0] # Convert to binary string

10、sha-256.rb

不需要修改原代码

相关推荐
another heaven5 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】
c++·算法·哈希算法
黄金龙PLUS6 天前
5个800比特大状态置换算法的设计与分析
算法·网络安全·密码学·哈希算法·同态加密
数据知道11 天前
LDAP 与 AD 安全深度剖析——注入、弱绑定、权限配置错误
网络安全·密码学·哈希算法
那年窗外下的雪.14 天前
AIDC 学习日志|第 22 天|All-Active/Single-Active 故障演练设计
服务器·网络·学习·算法·哈希算法
David猪大卫14 天前
【C++修炼】哈希表的实现
数据结构·c++·笔记·学习·算法·哈希算法·散列表
shehuiyuelaiyuehao14 天前
算法44,模拟算法,数青蛙
算法·哈希算法·散列表
数据知道14 天前
密钥管理(KMS)——轮换、分级、HSM 硬件安全模块
网络安全·密码学·哈希算法
老王熬夜敲代码15 天前
BLAKE3:最快的密码学哈希函数
算法·密码学·哈希算法
数据知道15 天前
国密算法实战——SM2/SM3/SM4 在国产系统中的应用
网络·算法·安全·网络安全·密码学·哈希算法