1use sha2::{Digest, Sha256};
2use sha3::Keccak256;
3
4pub fn keccak256(data: impl AsRef<[u8]>) -> String {
5 let mut hasher = Keccak256::new();
6 hasher.update(data.as_ref());
7 hex::encode(hasher.finalize())
8}
9
10pub fn hash(data: impl AsRef<[u8]>) -> String {
11 keccak256(data)
12}
13
14pub fn keccak256_str(value: &str) -> String {
15 keccak256(value.as_bytes())
16}
17
18pub fn hash_str(value: &str) -> String {
19 keccak256_str(value)
20}
21
22pub fn sha256(data: impl AsRef<[u8]>) -> String {
23 let mut hasher = Sha256::new();
24 hasher.update(data.as_ref());
25 hex::encode(hasher.finalize())
26}
27
28pub fn sha256_str(value: &str) -> String {
29 sha256(value.as_bytes())
30}