Skip to main content

Encoding and Conversions

Utilities for converting between formats.

Base64

local Base64 = Cryptography.Utilities.Base64

Base64.Encode(Input: buffer) -> buffer

Encodes a buffer to Base64.

local Data = buffer.fromstring("Hello World")
local Encoded = Base64.Encode(Data)
print(buffer.tostring(Encoded)) -- "SGVsbG8gV29ybGQ="

Base64.Decode(Input: buffer) -> buffer

Decodes Base64 back to raw bytes.

local Encoded = buffer.fromstring("SGVsbG8gV29ybGQ=")
local Decoded = Base64.Decode(Encoded)
print(buffer.tostring(Decoded)) -- "Hello World"

Standard Base64 encoding (RFC 4648). Output is around 33% larger than input.

Hex Conversions

local Conversions = Cryptography.Utilities.Conversions

Conversions.ToHex(Buffer: buffer) -> string

Converts a buffer to a lowercase hex string.

local Data = buffer.fromstring("Hi")
local Hex = Conversions.ToHex(Data)
print(Hex) -- "4869"

Conversions.FromHex(Hex: string) -> buffer

Converts a hex string back to bytes.

local Buf = Conversions.FromHex("48656c6c6f")
print(buffer.tostring(Buf)) -- "Hello"

Hex length must be even. Both uppercase and lowercase hex digits are accepted.

RandomString

local RandomString = Cryptography.Utilities.RandomString

RandomString(Length: number, AsBuffer: false) -> string

RandomString(Length: number, AsBuffer: true) -> buffer

Generates random alphanumeric strings.

local Token = RandomString(20, false) -- string
local TokenBuf = RandomString(20, true) -- buffer

Characters are drawn from a set including lowercase, uppercase, digits, and some symbols.