Utility Playground

Welcome to the Utility Playground, a curated collection of tools built with Golang and compiled to WebAssembly to run natively within your browser, delivering reliable performance without relying on external services. This architecture ensures that all computations occur locally, ensuring that none of your data is transmitted or stored outside your device.

These utilities are designed to support learning, problem-solving, and discovery. Whether you're validating an idea, performing ad-hoc calculations, or exploring how certain operations behave, the playground offers a straightforward way to interact with these browser-executed tools in real time. The playground is completely free to use and no sign-up is required. Enjoy.

  • Archive/Zip
  • Archive/Checksum
  • Crypto/AES
    AES encryption (formerly Rijndael), as defined in U.S. Federal Information Processing Standards Publication 197. The AES operations in this package are not implemented using constant-time algorithms.
  • Crypto/ECDH
    Elliptic Curve Diffie-Hellman over NIST curves and Curve25519.
  • Crypto/ECDSA
    Elliptic Curve Digital Signature Algorithm, as defined in FIPS 186-5. Signatures generated by this package are not deterministic, but entropy is mixed with the private key and the message, achieving the same level of security in case of randomness source failure. Operations involving private keys are implemented using constant-time algorithms, as long as an elliptic.Curve returned by elliptic.P224, elliptic.P256, elliptic.P384, or elliptic.P521 is used.
  • Crypto/ED25519
    Ed25519 signature algorithm. These functions are also compatible with the “Ed25519” function defined in RFC 8032. However, unlike RFC 8032's formulation, this package's private key representation includes a public key suffix to make multiple signing operations with the same key more efficient. Operations involving private keys are implemented using constant-time algorithms.
  • Crypto/HMAC
    Keyed-Hash Message Authentication Code (HMAC) as defined in U.S. Federal Information Processing Standards Publication 198. An HMAC is a cryptographic hash that uses a key to sign a message. The receiver verifies the hash by recomputing it using the same key.
  • Crypto/MD5
    MD5 hash algorithm as defined in RFC 1321. MD5 is cryptographically broken and should not be used for secure applications.
  • Crypto/PBKDF2
    Password based key derivation function PBKDF2 as defined in RFC 8018 (PKCS #5 v2.1). A key derivation function is useful when encrypting data based on a password or any other not-fully-random data. It uses a pseudorandom function to derive a secure encryption key based on the password.
    The key is derived based on the method described as PBKDF2 with the HMAC variant using the supplied hash function. Remember to get a good random salt. At least 8 bytes is recommended by the RFC. Using a higher iteration count will increase the cost of an exhaustive search but will also make derivation proportionally slower. keyLength must be a positive integer
  • Crypto/Rand
    Cryptographically secure random number generator.
  • Crypto/SHA1
    SHA-1 hash algorithm as defined in RFC 3174. SHA-1 is cryptographically broken and should not be used for secure applications.
  • Crypto/SHA3
    SHA-3 hash algorithms and the SHAKE extendable output functions defined in FIPS 202.
  • Crypto/SHA256
    SHA224 and SHA256 hash algorithms as defined in FIPS 180-4.
  • Crypto/SHA512
    SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4.
  • Encoding/Base32
    Base32 encoding as specified by RFC 4648.
  • Encoding/Base64
    Base64 encoding as specified by RFC 4648.
  • Encoding/Hex
    Hexadecimal encoding and decoding.
  • Encoding/HTML
    Functions for escaping and unescaping HTML text.
  • Encoding/URI
    Global JavaScript uri encoding functions.
  • Hash/Adler32
    Adler-32 is composed of two sums accumulated per byte: s1 is the sum of all bytes, s2 is the sum of all s1 values. Both sums are done modulo 65521. s1 is initialized to 1, s2 to zero. The Adler-32 checksum is stored as s2*65536 + s1 in most- significant-byte first (network) order.
  • Hash/CRC32
    32-bit cyclic redundancy check, or CRC-32, checksum. See wiki: Cyclic Redundancy Check for information. Polynomials are represented in LSB-first form also known as reversed representation. See wiki: Mathematics of Cyclic Redundancy Checks for information.
  • Hash/CRC64
    64-bit cyclic redundancy check, or CRC-64, checksum. See wiki: Cyclic Redundancy Check for information.
  • Hash/FNV
    FNV-1 and FNV-1a, non-cryptographic hash functions created by Glenn Fowler, Landon Curt Noll, and Phong Vo. See wiki: Fowler-Noll-Vo Hash Function.
  • Math/General
    Basic mathematical functions.