#hash

no-std jh

Pure Rust implementation of the JH cryptographic hash function

4 releases (2 breaking)

Uses new Rust 2024

0.2.0-rc.1 Jan 24, 2026
0.2.0-rc.0 Jan 4, 2026
0.1.0 Jun 11, 2023
0.0.0 Dec 16, 2016

#2980 in Cryptography

Download history 6814/week @ 2025-10-13 4799/week @ 2025-10-20 3353/week @ 2025-10-27 1484/week @ 2025-11-03 11521/week @ 2025-11-10 10098/week @ 2025-11-17 5130/week @ 2025-11-24 2790/week @ 2025-12-01 2715/week @ 2025-12-08 4516/week @ 2025-12-15 4066/week @ 2025-12-22 2116/week @ 2025-12-29 6907/week @ 2026-01-05 6271/week @ 2026-01-12 4436/week @ 2026-01-19 8152/week @ 2026-01-26

25,786 downloads per month
Used in 6 crates

MIT/Apache

800KB
364 lines

RustCrypto: JH

crate Docs Apache2/MIT licensed Rust Version Project Chat Build Status

Pure Rust implementation of the JH cryptographic hash function.

There are 4 standard versions of the JH hash function:

  • JH-224
  • JH-256
  • JH-384
  • JH-512

Examples

use jh::{Digest, Jh256};
use hex_literal::hex;

let mut hasher = Jh256::new();
hasher.update(b"hello");
let hash = hasher.finalize();

assert_eq!(hash, hex!("94fd3f4c564957c6754265676bf8b244c707d3ffb294e18af1f2e4f9b8306089"));

// Hex-encode hash using https://docs.rs/base16ct
let hex_hash = base16ct::lower::encode_string(&hash);
assert_eq!(hex_hash, "94fd3f4c564957c6754265676bf8b244c707d3ffb294e18af1f2e4f9b8306089");

Also, see the examples section in the RustCrypto/hashes readme.

License

The crate is licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies