勉强可用的VB SHA256模块(速度较CSDN论坛上有很大提升)
vb吧
全部回复
仅看楼主
level 11
余思培 楼主
当然比起其他语言的某些工具来说还是太慢了
2022年01月08日 07点01分 1
level 11
余思培 楼主
在论坛版本的基础上做了如下优化
1.变量声明为具体的数据类型(原论坛代码全部为弱类型,怀疑为vbs代码)
2.将如下SHA256基本函数进行内联汇编优化
Public Function ADD(ByVal wParam As Long, ByVal uParam As Long) As Long
Public Function ADDU(ByVal A As Long, ByVal B As Long, ByVal C As Long, ByVal D As Long) As Long
Public Function SHL(ByVal dwNum As Long, ByVal dwShift As Long) As Long
Public Function SHR(ByVal dwNum As Long, ByVal dwShift As Long) As Long
Public Function ROR(ByVal dwNum As Long, ByVal dwShift As Long) As Long
Public Function GetDWord(ByVal lpSrc As Long) As Long '在获取数据同时进行大小端互换
Public Function Sigma0(ByVal x As Long) As Long 'Σ0(x) = ROR(x,2) Xor ROR(x,13) Xor ROR(x,22)
Public Function Sigma1(ByVal x As Long) As Long 'Σ1(x) = ROR(x,6) Xor ROR(x,11) Xor ROR(x,25)
Public Function Sigma2(ByVal x As Long) As Long 'σ0(x) = ROR(x,7) Xor ROR(x,18) Xor SHR(x,3)
Public Function Sigma3(ByVal x As Long) As Long 'σ1(x) = ROR(x,17) Xor ROR(x,19) Xor SHR(x,10)
3.优化文件打开方式为文件映射
4.优化代码逻辑:
原逻辑:文件先转为Long型数组(同时进行大小端互换),再进行摘要迭代
新逻辑:文件映射到内存地址,逐块(64 Byte)进行迭代,迭代时根据内存地址获取数据(同时进行大小端互换)
其他更改
为增加代码可读性,将摘要迭代、文件尾填充从主体代码中摘出,改写为函数过程
2022年01月08日 07点01分 2
level 11
余思培 楼主
链接:[无效] https://pan.baidu.com/s/1DEPmGVh9iqv_r4KfS_rPGw
提取码:hvj3
复制这段内容后打开百度网盘手机App,操作更方便哦
2022年01月08日 07点01分 3
文件名:22010803_SHA256.zip
2022年01月08日 07点01分
level 11
余思培 楼主
本楼呈现未进行内联汇编优化的截图
2022年01月08日 07点01分 4
1