Zig
Zig
PBKDF2 - Derive Key from Password
See more Encryption Examples
Demonstrates how to derive a symmetric encryption key from a password using PBKDF2.Chilkat Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
const crypt = try chilkat.Crypt2.init();
defer crypt.deinit();
const pw = "password";
const pw_charset = "utf-8";
// Such as sha256, sha512
const hash_alg = "sha256";
// 16 bytes
const salt_hex = "78578E5A5D63CB0668AB39B21C8637FA";
const iteration_count = 100000;
// Derive a 256-bit key from the password.
const 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.)
const enc = "hex";
const hex_key = try crypt.pbkdf2(alloc, pw, pw_charset, hash_alg, salt_hex, iteration_count, output_bit_len, enc);
std.debug.print("{s}\n", .{hex_key});
// Sample output:
// AE96E261E32792D0FD6F0E72F8E872D046F7DB4C1FA7C83892EC73C49F461B70
}