Crypto (@std/crypto)
@std/crypto provides synchronous cryptography with no external dependencies.
import { sha256, createHash, hmacSha256, randomUUID } from "@std/crypto";
console.log(sha256("hello")); // hex digestconsole.log(createHash("sha512").update("a").update("b").digestHex());console.log(hmacSha256("key", "message"));console.log(randomUUID());Digest / HMAC / PBKDF2 inputs are u8[] (a string coerces to its UTF-8 bytes). One-shot helpers
return a lowercase hex string; the Hash type also offers raw-bytes and base64 forms.
Hashing
md5(data: u8[]): stringsha1(data: u8[]): stringsha256(data: u8[]): stringsha512(data: u8[]): string
createHash(algorithm: string): Hash // "md5","sha1","sha224","sha256","sha384","sha512"hash.update(data: u8[]): Hash // chainablehash.digestHex(): stringhash.digestBase64(): stringhash.digestBytes(): u8[]HMAC & PBKDF2
hmacSha256(key: u8[], data: u8[]): stringhmacSha512(key: u8[], data: u8[]): stringpbkdf2Sync(password: string, salt: string, iterations: i32, keylen: i32, digest: string): u8[]Randomness & comparison
randomBytes(n: i32): u8[] // CSPRNGrandomInt(min: i32, max: i32): i32 // uniform in [min, max)randomUUID(): string // RFC 4122 v4timingSafeEqual(a: u8[], b: u8[]): boolean // constant-time