1 个不稳定版本
使用旧的Rust 2015
0.1.0 | 2016年9月6日 |
---|
#65 in #sha-256
65KB
1K SLoC
最不高效的Sha
这个crate试图破解SHA256。(但不幸失败了^^)。
它以最不高效的方式实现了SHA-256。通常,SHA-256在32位整数(u32)上操作。这个实现使用一个双精度浮点数(f64)来表示每个整数的每个位,从而允许每个输入字节使用8个模糊输入位。
基准测试
处理器:Intel(R) Core(TM)2 Duo CPU P8400 @ 2.26GHz,3072KB缓存
- 计算包含一个字节输入数据的SHA256需要10毫秒。
- 计算包含一百字节输入数据的SHA256需要78毫秒。
为什么
为了好玩。这看起来不太可能成功,但我想做一些Rust。
lib.rs
:
这个crate试图破解SHA256。(但不幸失败了)。
它以最不高效的方式实现了SHA-256。通常,SHA-256在32位整数(u32)上操作。这个实现使用一个双精度浮点数(f64)来表示每个整数的每个位,从而允许每个输入字节使用8个模糊输入位。
Term 表示一个模糊位,要么作为一个可设置的位(常量或符号),要么作为其他 Term
的位运算组合,从而创建一个 Term
的树状图。这些术语是懒加载评估的。
U 结合了32个 Term
,表示一个模糊整数。U还实现了高级操作,如移位、旋转、加法。这些操作将转换为模糊的懒加载位操作。
Sha256 使用这些 U
来计算SHA-256算法。
Linopt 使用模糊的 Sha256
来尝试破解它。没有机会。
依赖项
~435KB