[{"data":1,"prerenderedAt":332},["ShallowReactive",2],{"navigation_docs":3,"-guide-playground":148,"-guide-playground-surround":327},[4,40],{"title":5,"path":6,"stem":7,"children":8,"icon":39},"Guide","\u002Fguide","1.guide\u002F01.index",[9,11,15,19,23,27,31,35],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"Hashing","\u002Fguide\u002Fhashing","1.guide\u002F02.hashing",{"title":16,"path":17,"stem":18},"HMAC and verify","\u002Fguide\u002Fverify","1.guide\u002F03.verify",{"title":20,"path":21,"stem":22},"Salted KDFs","\u002Fguide\u002Fkdf","1.guide\u002F04.kdf",{"title":24,"path":25,"stem":26},"CLI","\u002Fguide\u002Fcli","1.guide\u002F05.cli",{"title":28,"path":29,"stem":30},"Agents","\u002Fguide\u002Fagents","1.guide\u002F06.agents",{"title":32,"path":33,"stem":34},"Custom algorithms","\u002Fguide\u002Fcustom","1.guide\u002F07.custom",{"title":36,"path":37,"stem":38},"Playground","\u002Fguide\u002Fplayground","1.guide\u002F08.playground","i-lucide-book-open",{"title":41,"path":42,"stem":43,"children":44,"icon":147},"Algorithms","\u002Falgorithms","2.algorithms\u002F00.index",[45,47,51,55,59,63,67,71,75,79,83,87,91,95,99,103,107,111,115,119,123,127,131,135,139,143],{"title":46,"path":42,"stem":43},"Every algorithm",{"title":48,"path":49,"stem":50},"SHA-256","\u002Falgorithms\u002Fsha256","2.algorithms\u002F01.sha256",{"title":52,"path":53,"stem":54},"SHA-384","\u002Falgorithms\u002Fsha384","2.algorithms\u002F02.sha384",{"title":56,"path":57,"stem":58},"SHA-512","\u002Falgorithms\u002Fsha512","2.algorithms\u002F03.sha512",{"title":60,"path":61,"stem":62},"SHA-512Half","\u002Falgorithms\u002Fsha512-half","2.algorithms\u002F04.sha512-half",{"title":64,"path":65,"stem":66},"SHA3-256","\u002Falgorithms\u002Fsha3-256","2.algorithms\u002F05.sha3-256",{"title":68,"path":69,"stem":70},"SHA3-512","\u002Falgorithms\u002Fsha3-512","2.algorithms\u002F06.sha3-512",{"title":72,"path":73,"stem":74},"Keccak-256","\u002Falgorithms\u002Fkeccak256","2.algorithms\u002F07.keccak256",{"title":76,"path":77,"stem":78},"BLAKE2b","\u002Falgorithms\u002Fblake2b","2.algorithms\u002F08.blake2b",{"title":80,"path":81,"stem":82},"BLAKE2b-256","\u002Falgorithms\u002Fblake2b-256","2.algorithms\u002F09.blake2b-256",{"title":84,"path":85,"stem":86},"BLAKE2b-224","\u002Falgorithms\u002Fblake2b-224","2.algorithms\u002F10.blake2b-224",{"title":88,"path":89,"stem":90},"BLAKE2s","\u002Falgorithms\u002Fblake2s","2.algorithms\u002F11.blake2s",{"title":92,"path":93,"stem":94},"BLAKE3","\u002Falgorithms\u002Fblake3","2.algorithms\u002F12.blake3",{"title":96,"path":97,"stem":98},"BLAKE-256","\u002Falgorithms\u002Fblake256","2.algorithms\u002F13.blake256",{"title":100,"path":101,"stem":102},"RIPEMD-160","\u002Falgorithms\u002Fripemd160","2.algorithms\u002F14.ripemd160",{"title":104,"path":105,"stem":106},"HASH160","\u002Falgorithms\u002Fhash160","2.algorithms\u002F15.hash160",{"title":108,"path":109,"stem":110},"HASH256","\u002Falgorithms\u002Fhash256","2.algorithms\u002F16.hash256",{"title":112,"path":113,"stem":114},"MD5","\u002Falgorithms\u002Fmd5","2.algorithms\u002F17.md5",{"title":116,"path":117,"stem":118},"SHA-1","\u002Falgorithms\u002Fsha1","2.algorithms\u002F18.sha1",{"title":120,"path":121,"stem":122},"SHA-0","\u002Falgorithms\u002Fsha0","2.algorithms\u002F19.sha0",{"title":124,"path":125,"stem":126},"CRC-32","\u002Falgorithms\u002Fcrc32","2.algorithms\u002F20.crc32",{"title":128,"path":129,"stem":130},"CRC-16\u002FXMODEM","\u002Falgorithms\u002Fcrc16-xmodem","2.algorithms\u002F21.crc16-xmodem",{"title":132,"path":133,"stem":134},"xxHash (XXH64)","\u002Falgorithms\u002Fxxhash","2.algorithms\u002F22.xxhash",{"title":136,"path":137,"stem":138},"FNV-1a (64-bit)","\u002Falgorithms\u002Ffnv1a","2.algorithms\u002F23.fnv1a",{"title":140,"path":141,"stem":142},"scrypt","\u002Falgorithms\u002Fscrypt","2.algorithms\u002F24.scrypt",{"title":144,"path":145,"stem":146},"PBKDF2","\u002Falgorithms\u002Fpbkdf2","2.algorithms\u002F25.pbkdf2","i-lucide-library",{"id":149,"title":36,"body":150,"description":319,"extension":320,"links":321,"meta":322,"navigation":324,"path":37,"seo":325,"stem":38,"__hash__":326},"docs\u002F1.guide\u002F08.playground.md",{"type":151,"value":152,"toc":312},"minimark",[153,167,253,274,279,284,291,295,301,305],[154,155,156,157,161,162,166],"p",{},"The ",[158,159,36],"a",{"href":160},"\u002Fplayground"," imports ",[163,164,165],"code",{},"@agntn\u002Fhashes"," into the page and runs the tool executors there. Every digest, HMAC, verdict and listing is the library's own answer, the same code the CLI and the MCP server run. Nothing is sent anywhere. The worker serves the page and that's the end of its involvement.",[168,169,170,186],"table",{},[171,172,173],"thead",{},[174,175,176,180,183],"tr",{},[177,178,179],"th",{},"Operation",[177,181,182],{},"Runs",[177,184,185],{},"Tool",[187,188,189,205,220,235],"tbody",{},[174,190,191,195,200],{},[192,193,194],"td",{},"Hash",[192,196,197],{},[163,198,199],{},"hashCompute({ algorithm, input, inputEncoding, encoding, salt, parameters })",[192,201,202],{},[163,203,204],{},"hash_compute",[174,206,207,210,215],{},[192,208,209],{},"HMAC",[192,211,212],{},[163,213,214],{},"hashHmac({ algorithm, input, inputEncoding, key, keyEncoding, encoding })",[192,216,217],{},[163,218,219],{},"hash_hmac",[174,221,222,225,230],{},[192,223,224],{},"Verify",[192,226,227],{},[163,228,229],{},"hashVerify({ algorithm, input, inputEncoding, expected, encoding, salt, parameters })",[192,231,232],{},[163,233,234],{},"hash_verify",[174,236,237,239,248],{},[192,238,41],{},[192,240,241,244,245],{},[163,242,243],{},"hashAlgorithms({ family, category })"," or ",[163,246,247],{},"({ algorithm })",[192,249,250],{},[163,251,252],{},"hash_algorithms",[154,254,255,256,259,260,263,264,263,267,269,270,273],{},"The parameter fields come from ",[163,257,258],{},"info().options",". Pick scrypt and ",[163,261,262],{},"N",", ",[163,265,266],{},"r",[163,268,154],{}," and ",[163,271,272],{},"keyLength"," show up. Pick SHA-256 and they're gone.",[275,276,278],"warning",{"title":277},"Your password stays in the tab, but still","Nothing leaves the browser, and the page never writes what you type anywhere except the address bar. That also means a real password ends up in your history and in any link you copy. Use a fake one.",[280,281,283],"h2",{"id":282},"every-state-is-a-link","Every state is a link",[154,285,286,287,290],{},"The form writes itself into the address: ",[163,288,289],{},"\u002Fplayground?op=hash&algorithm=keccak256&input=transfer(address,uint256)"," opens the page on that answer. Paste it to someone and they see what you saw.",[280,292,294],{"id":293},"costs-are-the-tools-costs","Costs are the tool's costs",[154,296,297,298,300],{},"The playground calls the executors, so it inherits their limits. scrypt with ",[163,299,262],{}," 1048576 is refused the same way an agent would be refused. The defaults are the real defaults, so PBKDF2 at 600000 rounds of SHA-512 does take a moment in a browser tab. That's the point of a KDF, it isn't the page being slow.",[280,302,304],{"id":303},"the-two-snippets","The two snippets",[154,306,307,308,311],{},"Under the fields the page prints the same call as a CLI line and as a tool invocation in JSON, both with copy buttons. They're built from the form, so what you copy is what you ran. The answer ends in a ",[163,309,310],{},"Full tool response"," row with the exact text a model would get.",{"title":313,"searchDepth":314,"depth":314,"links":315},"",2,[316,317,318],{"id":282,"depth":314,"text":283},{"id":293,"depth":314,"text":294},{"id":303,"depth":314,"text":304},"The page behind hashes.agntn.dev\u002Fplayground runs the library in your browser. What it does and what it won't","md",null,{"icon":323},"i-lucide-flask-conical",true,{"title":36,"description":319},"vy2oqHoZro8NJA1WMtGEd2hUa3iBaTSC9myCusVwZvs",[328,330],{"title":32,"path":33,"stem":34,"description":329,"children":-1},"Extend FixedHash or BlockHash or Hash and register the class. The CLI and the tools see it too",{"title":46,"path":42,"stem":43,"description":331,"children":-1},"Every algorithm the package ships with its digest size and HMAC support and options. Read live from the registry",1790688234326]