[][src]Struct openssl::hash::Hasher

pub struct Hasher { /* fields omitted */ }
[]

Provides message digest (hash) computation.

Examples

Calculate a hash in one go:

use openssl::hash::{hash, MessageDigest};

let data = b"\x42\xF4\x97\xE0";
let spec = b"\x7c\x43\x0f\x17\x8a\xef\xdf\x14\x87\xfe\xe7\x14\x4e\x96\x41\xe2";
let res = hash(MessageDigest::md5(), data).unwrap();
assert_eq!(&*res, spec);

Supply the input in chunks:

use openssl::hash::{Hasher, MessageDigest};

let data = [b"\x42\xF4", b"\x97\xE0"];
let spec = b"\x7c\x43\x0f\x17\x8a\xef\xdf\x14\x87\xfe\xe7\x14\x4e\x96\x41\xe2";
let mut h = Hasher::new(MessageDigest::md5()).unwrap();
h.update(data[0]).unwrap();
h.update(data[1]).unwrap();
let res = h.finish().unwrap();
assert_eq!(&*res, spec);

Warning

Don't actually use MD5 and SHA-1 hashes, they're not secure anymore.

Don't ever hash passwords, use the functions in the pkcs5 module or bcrypt/scrypt instead.

Methods

impl Hasher
[src]
[]

[]

Creates a new Hasher with the specified hash type.

[]

Feeds data into the hasher.

[]

Returns the hash of the data written and resets the hasher.

Trait Implementations

impl Sync for Hasher
[src]

impl Send for Hasher
[src]

impl Clone for Hasher
[src]
[+]

Important traits for Hasher
[]

Returns a copy of the value. Read more

[]

Performs copy-assignment from source. Read more

impl Drop for Hasher
[src]
[+]

[]

Executes the destructor for this type. Read more

impl Write for Hasher
[src]
[+]

[]

Write a buffer into this object, returning how many bytes were written. Read more

[]

Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more

[]

Attempts to write an entire buffer into this write. Read more

[]

Writes a formatted string into this writer, returning any error encountered. Read more

[]

Creates a "by reference" adaptor for this instance of Write. Read more

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]
[]

[]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]
[]

[]

Creates owned data from borrowed data, usually by cloning. Read more

[]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T> From for T
[src]
[]

[]

Performs the conversion.

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]
[]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

[]

🔬 This is a nightly-only experimental API. (try_from)

Performs the conversion.

impl<T> Borrow for T where
    T: ?Sized
[src]
[]

[]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut for T where
    T: ?Sized
[src]
[]

[]

Mutably borrows from an owned value. Read more

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]
[]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

[]

🔬 This is a nightly-only experimental API. (try_from)

Performs the conversion.

impl<T> Any for T where
    T: 'static + ?Sized
[src]
[]

[]

🔬 This is a nightly-only experimental API. (get_type_id)

this method will likely be replaced by an associated static

Gets the TypeId of self. Read more