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.