Sample code for 30+ languages & platforms
Rust

PBKDF2 - Derive Key from Password

See more Encryption Examples

Demonstrates how to derive a symmetric encryption key from a password using PBKDF2.

Chilkat Rust Downloads

Rust
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

let crypt = chilkat::Crypt2::new();

let pw = "password".to_string();

let pw_charset = "utf-8".to_string();

// Such as sha256, sha512
let hash_alg = "sha256".to_string();

// 16 bytes
let salt_hex = "78578E5A5D63CB0668AB39B21C8637FA".to_string();

let iteration_count = 100000;

// Derive a 256-bit key from the password.
let output_bit_len = 256;

// The derived key is returned as a hex or base64 encoded string.
// (Note: The salt argument must be a string that also uses
// the same encoding.)
let enc = "hex".to_string();

let hex_key = crypt.pbkdf2(&pw, &pw_charset, &hash_alg, &salt_hex, iteration_count, output_bit_len, &enc).unwrap_or_default();

println!("{}", hex_key);

// Sample output:
// AE96E261E32792D0FD6F0E72F8E872D046F7DB4C1FA7C83892EC73C49F461B70