#attack #crypto

fractus

Rust和Python的加密攻击库

5个版本

0.1.9 2024年6月29日
0.1.8 2024年5月26日
0.1.7 2024年2月24日
0.1.6 2024年2月24日
0.1.0 2024年2月24日

#371 in 加密学

Download history 138/week @ 2024-05-25 11/week @ 2024-06-01 2/week @ 2024-06-08 149/week @ 2024-06-29 2/week @ 2024-07-06

307 每月下载量

MIT许可证

145KB
3K SLoC

Fractus

Fractus是一个用Rust编写的加密攻击库。它也通过Python提供。

运行

Rust

cargoadd fractus

use fractus::sha2_256;

let m = b"abc";
let h = sha2_256::compute(&m);
let e = b"cde";
let mut c = m.to_vec();
c.extend(sha2_256::padding(m.len()));
c.extend(e);
let e = sha2_256::extend(&h, m.len(), e);
assert_eq!(e, sha2_256::compute(c));

Python

pip install fractus

from fractus import sha2_256

m = b'secret' + b'abc'
h = sha2_256.compute(m)
e = b'test'
assert sha2_256.extend(h, len(m), e) == sha2_256.compute(m + sha2_256.padding(len(m)) + e)

特性

长度扩展攻击

  • MD4
  • MD5
  • SHA0
  • SHA1
  • SHA2_224
  • SHA2_256
  • SHA2_512
  • Ripemd128
  • Ripemd160
  • Ripemd256
  • Ripemd320
  • Whirlpool

依赖

~3–11MB
~115K SLoC