Nyx con Ejemplos

Base64

std/base64 ofrece codificación y decodificación RFC 4648 tanto para Base64 estándar (con +/ y padding) como para Base64 URL-safe (con -_ y sin padding). Esto es esencial para codificar datos binarios en protocolos basados en texto como headers HTTP, tokens JWT y data URIs.

Código

// Base64 encoding and decoding (RFC 4648)

import "std/base64"

fn main() -> int {
    let original: String = "Hello, Nyx!"
    let encoded: String = base64_encode(original)
    print("original: " + original)
    print("encoded:  " + encoded)

    let decoded: String = base64_decode(encoded)
    print("decoded:  " + decoded)

    // URL-safe Base64 (no padding, - and _ instead of + and /)
    let url_enc: String = base64url_encode("https://nyxlang.com/?q=hello world")
    print("url-safe: " + url_enc)

    let url_dec: String = base64url_decode(url_enc)
    print("url-dec:  " + url_dec)

    return 0
}

Salida

original: Hello, Nyx!
encoded:  SGVsbG8sIE55eCE=
decoded:  Hello, Nyx!
url-safe: aHR0cHM6Ly9ueXhsYW5nLmNvbS8_cT1oZWxsbyB3b3JsZA
url-dec:  https://nyxlang.com/?q=hello world

Explicación

base64_encode y base64_decode usan el alfabeto Base64 estándar (A-Z, a-z, 0-9, +, /) con padding =. Este es el formato usado en MIME, certificados PEM y la mayoría de las APIs.

base64url_encode y base64url_decode usan la variante URL-safe: - reemplaza a +, _ reemplaza a /, y se omite el padding. Este es el formato requerido por JWT (JSON Web Tokens) y es seguro para usar en URLs y nombres de archivo.

← Anterior Siguiente →

Source: examples/by-example/41-base64.nx