Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  README.md   Sprache: unbekannt

 
Untersuchungsergebnis.md Download desUnknown {[0] [0] [0]}

SipHash implementation for Rust
===============================

This crates implements SipHash-2-4 and SipHash-1-3 in Rust.

It is based on the original implementation from rust-core and exposes the
same API.

It also implements SipHash variants returning 128-bit tags.

The `sip` module implements the standard 64-bit mode, whereas the `sip128`
module implements the 128-bit mode.

Usage
-----

In `Cargo.toml`:

```toml
[dependencies]
siphasher = "1"
```

If you want [serde](https://github.com/serde-rs/serde) support, include the feature like this:

```toml
[dependencies]
siphasher = { version = "1", features = ["serde"] }
```

64-bit mode:

```rust
use siphasher::sip::{SipHasher, SipHasher13, SipHasher24};

// one-shot:

let array: &[u8] = &[123];
let key: &[u8; 16] = &[12345678910111213141516];
let hasher = SipHasher13::new_with_key(key);
let h = hasher.hash(array);

// incremental:

use core::hash::Hasher;

let array1: &[u8] = &[123];
let array2: &[u8] = &[456];
let key: &[u8; 16] = &[12345678910111213141516];
let mut hasher = SipHasher13::new_with_key(key);
hasher.write(array1);
hasher.write(array2);
let h = hasher.finish();
```

128-bit mode:

```rust
use siphasher::sip128::{Hasher128, SipHasher, SipHasher13, SipHasher24};

// one-shot:

let array: &[u8] = &[123];
let key: &[u8; 16] = &[12345678910111213141516];
let hasher = SipHasher13::new_with_key(key);
let h = hasher.hash(array).as_bytes();

// incremental:

use core::hash::Hasher;

let array1: &[u8] = &[123];
let array2: &[u8] = &[456];
let key: &[u8; 16] = &[12345678910111213141516];
let mut hasher = SipHasher13::new_with_key(key);
hasher.write(array1);
hasher.write(array2);
let h = hasher.finish128().as_bytes();
```

[API documentation](https://docs.rs/siphasher/)
-----------------------------------------------

Note
----

Due to a confusing and not well documented API, methods from the `Hasher` trait of the standard library (`std::hash::Hasher`, `core::hash::Hasher`) produce non-portable results.

This is not specific to SipHash, and affects all hash functions.

The only safe methods in that trait are `write()` and `finish()`.

It is thus recommended to use SipHash (and all other hash functions, actually) as documented above.

[zur Elbe Produktseite wechseln0.70Quellennavigators]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=277311
#Domains=752002