[{"data":1,"prerenderedAt":263},["ShallowReactive",2],{"navigation_docs":3,"-algorithms-blake3":148,"-algorithms-blake3-surround":258},[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":92,"body":150,"description":251,"extension":252,"links":253,"meta":254,"navigation":255,"path":93,"seo":256,"stem":94,"__hash__":257},"docs\u002F2.algorithms\u002F12.blake3.md",{"type":151,"value":152,"toc":249},"minimark",[153,157,165,238,245],[154,155],"algorithm-facts",{"name":156},"blake3",[158,159,160,161,164],"p",{},"BLAKE3 splits the input into 1 KiB chunks, hashes them as leaves of a binary tree and compresses its way up to one root. The tree is what makes it parallel, and why it runs so fast on large inputs. This implementation is plain TypeScript and checked against the reference ",[162,163,156],"code",{}," on 285 input lengths up to 1 MiB, so it's right. It isn't SIMD fast, though.",[166,167,172],"pre",{"className":168,"code":169,"language":170,"meta":171,"style":171},"language-ts shiki shiki-themes hashes hashes hashes","create(\"blake3\").hash(\"\").digest;\n\u002F\u002F \"af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262\"\ncreate(\"blake3\").hash(\"abc\").digest;\n\u002F\u002F \"6437b3ac38465133ffb63b75273a8db548c558465d79db03fd359c6cd5bd9d85\"\n","ts","",[162,173,174,205,212,232],{"__ignoreMap":171},[175,176,179,183,187,191,194,197,199,202],"span",{"class":177,"line":178},"line",1,[175,180,182],{"class":181},"sK71F","create",[175,184,186],{"class":185},"s38Sx","(",[175,188,190],{"class":189},"shU9J","\"blake3\"",[175,192,193],{"class":185},").",[175,195,196],{"class":181},"hash",[175,198,186],{"class":185},[175,200,201],{"class":189},"\"\"",[175,203,204],{"class":185},").digest;\n",[175,206,208],{"class":177,"line":207},2,[175,209,211],{"class":210},"scIB-","\u002F\u002F \"af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262\"\n",[175,213,215,217,219,221,223,225,227,230],{"class":177,"line":214},3,[175,216,182],{"class":181},[175,218,186],{"class":185},[175,220,190],{"class":189},[175,222,193],{"class":185},[175,224,196],{"class":181},[175,226,186],{"class":185},[175,228,229],{"class":189},"\"abc\"",[175,231,204],{"class":185},[175,233,235],{"class":177,"line":234},4,[175,236,237],{"class":210},"\u002F\u002F \"6437b3ac38465133ffb63b75273a8db548c558465d79db03fd359c6cd5bd9d85\"\n",[158,239,240,241,244],{},"No HMAC. BLAKE3 has its own keyed mode, which isn't HMAC and isn't here, so a ",[162,242,243],{},"key"," is refused instead of quietly ignored.",[246,247,248],"style",{},"html pre.shiki code .sK71F, html code.shiki .sK71F{--shiki-light:var(--shiki-token-function);--shiki-default:var(--shiki-token-function);--shiki-dark:var(--shiki-token-function)}html pre.shiki code .s38Sx, html code.shiki .s38Sx{--shiki-light:var(--ui-text-highlighted);--shiki-default:var(--ui-text-highlighted);--shiki-dark:var(--ui-text-highlighted)}html pre.shiki code .shU9J, html code.shiki .shU9J{--shiki-light:var(--shiki-token-string);--shiki-default:var(--shiki-token-string);--shiki-dark:var(--shiki-token-string)}html pre.shiki code .scIB-, html code.shiki .scIB-{--shiki-light:var(--shiki-token-comment);--shiki-default:var(--shiki-token-comment);--shiki-dark:var(--shiki-token-comment)}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":171,"searchDepth":207,"depth":207,"links":250},[],"A Merkle tree of 1 KiB chunks with a 32-byte digest. Absurdly fast and no HMAC mode","md",null,{},true,{"title":92,"description":251},"Tr6luNuTX-O8Od5n2fbscOzwotGqlHG-VhNYnsPQStk",[259,261],{"title":88,"path":89,"stem":90,"description":260,"children":-1},"BLAKE2 for 32-bit platforms with a 32-byte digest and HMAC. Smaller state than BLAKE2b and inside WireGuard",{"title":96,"path":97,"stem":98,"description":262,"children":-1},"The original BLAKE with 14 rounds and a SHA-3 finalist. Decred hashes blocks and transactions and addresses with it",1790683657011]