Sample code for 30+ languages & platforms
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

Zig
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
}