Sample code for 30+ languages & platforms
Zig

Example: Crypt2.GenRandomBytesENC method

Shows how to use the GenRandomBytesENC method to generate a specified number of random bytes and return them as a binary encoded string, such as in base64 or hex format.

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();

    const crypt = try chilkat.Crypt2.init();
    defer crypt.deinit();

    // Example of a some of the binary encodings supported by Chilkat.

    // Internally uses the Fortuna cryptographically secure random number generation algorithm
    // auto-seeded from a secure source of entropy that depends on the OS.

    crypt.setEncodingMode("hex");
    var s: [:0]const u8 = try crypt.genRandomBytesENC(alloc, 8);
    std.debug.print("Uppercase Hex: {s}\n", .{s});

    crypt.setEncodingMode("hex_lower");
    s = try crypt.genRandomBytesENC(alloc, 8);
    std.debug.print("Lowercase Hex: {s}\n", .{s});

    crypt.setEncodingMode("base64");
    s = try crypt.genRandomBytesENC(alloc, 8);
    std.debug.print("Base64: {s}\n", .{s});

    crypt.setEncodingMode("base64url");
    s = try crypt.genRandomBytesENC(alloc, 8);
    std.debug.print("Base64Url: {s}\n", .{s});

    crypt.setEncodingMode("base58");
    s = try crypt.genRandomBytesENC(alloc, 8);
    std.debug.print("Base58: {s}\n", .{s});

    crypt.setEncodingMode("base32");
    s = try crypt.genRandomBytesENC(alloc, 8);
    std.debug.print("Base32: {s}\n", .{s});

    crypt.setEncodingMode("decList");
    s = try crypt.genRandomBytesENC(alloc, 8);
    std.debug.print("Decimal List: {s}\n", .{s});

    // Sample Output:

    // Uppercase Hex: 1BA0E87915C3B429
    // Lowercase Hex: 1e1638a1c7996c58
    // Base64: 1lV0I/su5lg=
    // Base64Url: Zq7DU0nukLk
    // Base58: foUVWUjAT6e
    // Base32: LHV5RV4HRCLW2===
    // Decimal List: 168,55,214,82,93,154,191,164
}