Sample code for 30+ languages & platforms
Zig

ARC4 PRNG (Pseudo Random Number Generator)

See more Encryption Examples

Uses the ARC4 stream encryption algorithm as a pseudo random number generator.

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 requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

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

    // Set the encryption algorithm to ARC4:
    crypt.setCryptAlgorithm("arc4");

    // We want the encrypted output to be a hex-encoded string.
    crypt.setEncodingMode("hex");

    const key = "000102030405060708090A0B0C0D0E0F";
    var data: [:0]const u8 = "12345678";

    // Key length is 128 bits in this example.
    crypt.setKeyLength(128);
    crypt.setEncodedKey(key, "hex");

    // Generate 16 "random" 8-byte blocks, encoded as hex strings.
    // This example will generate the identical output each time
    // it is run.
    var cipher_hex: [:0]const u8 = "";
    var i: i32 = 0;
    i = 0;
    while (i <= 15) : (i += 1) {
        cipher_hex = try crypt.encryptStringENC(alloc, data);
        std.debug.print("{s}\n", .{data});
        std.debug.print("{s}\n", .{cipher_hex});
        data = cipher_hex;
    }
}