我試圖使用sodiumoxide提供的SHA256散列函數來編寫hash_string
函數。這個函數應該接受一個字符串並返回字符串表示的字符串的散列。如何使用氧化鈉箱打散字符串?
這是我到目前爲止有:
extern crate sodiumoxide;
use std::string::String;
use sodiumoxide::crypto::hash::sha256;
pub fn hash_string(s: String) -> String {
let digest = sha256::hash(&s.into_bytes());
String::from_utf8_unchecked(digest).to_owned()
}
很顯然,這是不正確的,但我不知道如何解決它。
我能夠實現這與rust-crypto箱。
pub fn hash_string(input: String) -> String {
let mut sha = Sha256::new();
sha.input_str(&input);
sha.result_str()
}
我想完全按照上面的說法做,但是用鈉氧化物箱代替。
請包括爲什麼你認爲這是不正確的。你測試過這個功能嗎?您使用了哪些輸入(可能具有已知的預期輸出)? –
它不編譯,所以我不能測試該功能。我不知道如何將[摘要](https://dnaq.github.io/sodiumoxide/sodiumoxide/crypto/hash/sha256/struct.Digest.html)轉換爲字符串。 – Wilfred
假設您知道散列只是一個字節向量,將它們解釋爲UTF-8字符串是錯誤的。您可能想將其轉換爲文本表示(十六進制,Base64等)。同樣,你能提供一個輸入和預期的輸出嗎? –