[{"data":1,"prerenderedAt":331},["ShallowReactive",2],{"navigation_docs":3,"-algorithms-argon2d":200,"-algorithms-argon2d-surround":328},[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":199},"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,147,151,155,159,163,167,171,175,179,183,187,191,195],{"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-224","\u002Falgorithms\u002Fsha224","2.algorithms\u002F04.sha224",{"title":64,"path":65,"stem":66},"SHA-512\u002F224","\u002Falgorithms\u002Fsha512-224","2.algorithms\u002F05.sha512-224",{"title":68,"path":69,"stem":70},"SHA-512\u002F256","\u002Falgorithms\u002Fsha512-256","2.algorithms\u002F06.sha512-256",{"title":72,"path":73,"stem":74},"SHA-512Half","\u002Falgorithms\u002Fsha512-half","2.algorithms\u002F07.sha512-half",{"title":76,"path":77,"stem":78},"SHA3-256","\u002Falgorithms\u002Fsha3-256","2.algorithms\u002F08.sha3-256",{"title":80,"path":81,"stem":82},"SHA3-512","\u002Falgorithms\u002Fsha3-512","2.algorithms\u002F09.sha3-512",{"title":84,"path":85,"stem":86},"Keccak-256","\u002Falgorithms\u002Fkeccak256","2.algorithms\u002F10.keccak256",{"title":88,"path":89,"stem":90},"BLAKE2b","\u002Falgorithms\u002Fblake2b","2.algorithms\u002F11.blake2b",{"title":92,"path":93,"stem":94},"BLAKE2b-256","\u002Falgorithms\u002Fblake2b-256","2.algorithms\u002F12.blake2b-256",{"title":96,"path":97,"stem":98},"BLAKE2b-224","\u002Falgorithms\u002Fblake2b-224","2.algorithms\u002F13.blake2b-224",{"title":100,"path":101,"stem":102},"BLAKE2s","\u002Falgorithms\u002Fblake2s","2.algorithms\u002F14.blake2s",{"title":104,"path":105,"stem":106},"BLAKE3","\u002Falgorithms\u002Fblake3","2.algorithms\u002F15.blake3",{"title":108,"path":109,"stem":110},"BLAKE-256","\u002Falgorithms\u002Fblake256","2.algorithms\u002F16.blake256",{"title":112,"path":113,"stem":114},"RIPEMD-160","\u002Falgorithms\u002Fripemd160","2.algorithms\u002F17.ripemd160",{"title":116,"path":117,"stem":118},"RIPEMD-320","\u002Falgorithms\u002Fripemd320","2.algorithms\u002F18.ripemd320",{"title":120,"path":121,"stem":122},"HASH160","\u002Falgorithms\u002Fhash160","2.algorithms\u002F19.hash160",{"title":124,"path":125,"stem":126},"HASH256","\u002Falgorithms\u002Fhash256","2.algorithms\u002F20.hash256",{"title":128,"path":129,"stem":130},"MD5","\u002Falgorithms\u002Fmd5","2.algorithms\u002F21.md5",{"title":132,"path":133,"stem":134},"MD4","\u002Falgorithms\u002Fmd4","2.algorithms\u002F22.md4",{"title":136,"path":137,"stem":138},"NTLM","\u002Falgorithms\u002Fntlm","2.algorithms\u002F23.ntlm",{"title":140,"path":141,"stem":142},"SHA-1","\u002Falgorithms\u002Fsha1","2.algorithms\u002F24.sha1",{"title":144,"path":145,"stem":146},"SHA-0","\u002Falgorithms\u002Fsha0","2.algorithms\u002F25.sha0",{"title":148,"path":149,"stem":150},"RIPEMD-128","\u002Falgorithms\u002Fripemd128","2.algorithms\u002F26.ripemd128",{"title":152,"path":153,"stem":154},"RIPEMD-256","\u002Falgorithms\u002Fripemd256","2.algorithms\u002F27.ripemd256",{"title":156,"path":157,"stem":158},"CRC-32","\u002Falgorithms\u002Fcrc32","2.algorithms\u002F28.crc32",{"title":160,"path":161,"stem":162},"CRC-16\u002FXMODEM","\u002Falgorithms\u002Fcrc16-xmodem","2.algorithms\u002F29.crc16-xmodem",{"title":164,"path":165,"stem":166},"xxHash (XXH64)","\u002Falgorithms\u002Fxxhash","2.algorithms\u002F30.xxhash",{"title":168,"path":169,"stem":170},"FNV-1a (64-bit)","\u002Falgorithms\u002Ffnv1a","2.algorithms\u002F31.fnv1a",{"title":172,"path":173,"stem":174},"scrypt","\u002Falgorithms\u002Fscrypt","2.algorithms\u002F32.scrypt",{"title":176,"path":177,"stem":178},"PBKDF2","\u002Falgorithms\u002Fpbkdf2","2.algorithms\u002F33.pbkdf2",{"title":180,"path":181,"stem":182},"HKDF","\u002Falgorithms\u002Fhkdf","2.algorithms\u002F34.hkdf",{"title":184,"path":185,"stem":186},"EVP_BytesToKey","\u002Falgorithms\u002Fevp-bytestokey","2.algorithms\u002F35.evp-bytestokey",{"title":188,"path":189,"stem":190},"Argon2id","\u002Falgorithms\u002Fargon2id","2.algorithms\u002F36.argon2id",{"title":192,"path":193,"stem":194},"Argon2i","\u002Falgorithms\u002Fargon2i","2.algorithms\u002F37.argon2i",{"title":196,"path":197,"stem":198},"Argon2d","\u002Falgorithms\u002Fargon2d","2.algorithms\u002F38.argon2d","i-lucide-library",{"id":201,"title":196,"body":202,"description":321,"extension":322,"links":323,"meta":324,"navigation":325,"path":197,"seo":326,"stem":198,"__hash__":327},"docs\u002F2.algorithms\u002F38.argon2d.md",{"type":203,"value":204,"toc":319},"minimark",[205,209,213,297,300,315],[206,207],"algorithm-facts",{"name":208},"argon2d",[210,211,212],"p",{},"argon2d lets the data pick the next block to read. A cracker can't guess the order, so dropping memory gets expensive fast. The catch? Timing. Those reads follow the password, and a process next to yours can watch them. RFC 9106 points it at cryptocurrencies and proof of work. Nobody sneaks onto that box.",[214,215,220],"pre",{"className":216,"code":217,"language":218,"meta":219,"style":219},"language-ts shiki shiki-themes hashes hashes hashes","create(\"argon2d\").hash(\"password\", {\n  salt: \"73616c7473616c74\",\n  memory: 1024,\n  iterations: 2,\n  parallelism: 1,\n}).digest;\n\u002F\u002F \"32d03e4754ab2c9369e56f14f9ac2f496ea2b15b75be1d7882b44783f09c5281\"\n","ts","",[221,222,223,254,266,272,278,284,290],"code",{"__ignoreMap":219},[224,225,228,232,236,240,243,246,248,251],"span",{"class":226,"line":227},"line",1,[224,229,231],{"class":230},"sK71F","create",[224,233,235],{"class":234},"s38Sx","(",[224,237,239],{"class":238},"shU9J","\"argon2d\"",[224,241,242],{"class":234},").",[224,244,245],{"class":230},"hash",[224,247,235],{"class":234},[224,249,250],{"class":238},"\"password\"",[224,252,253],{"class":234},", {\n",[224,255,257,260,263],{"class":226,"line":256},2,[224,258,259],{"class":234},"  salt: ",[224,261,262],{"class":238},"\"73616c7473616c74\"",[224,264,265],{"class":234},",\n",[224,267,269],{"class":226,"line":268},3,[224,270,271],{"class":234},"  memory: 1024,\n",[224,273,275],{"class":226,"line":274},4,[224,276,277],{"class":234},"  iterations: 2,\n",[224,279,281],{"class":226,"line":280},5,[224,282,283],{"class":234},"  parallelism: 1,\n",[224,285,287],{"class":226,"line":286},6,[224,288,289],{"class":234},"}).digest;\n",[224,291,293],{"class":226,"line":292},7,[224,294,296],{"class":295},"scIB-","\u002F\u002F \"32d03e4754ab2c9369e56f14f9ac2f496ea2b15b75be1d7882b44783f09c5281\"\n",[210,298,299],{},"A puzzle that says \"Argon2\" and nothing else? Try all three. The variant is one number in the first hash, and it changes every byte after.",[210,301,302,303,305,306,309,310,314],{},"Options, defaults and the byte function ",[221,304,208],{}," from ",[221,307,308],{},"@agntn\u002Fhashes\u002Fargon2"," work exactly like on the ",[311,312,313],"a",{"href":189},"argon2id"," page.",[316,317,318],"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":219,"searchDepth":256,"depth":256,"links":320},[],"Argon2 with memory reads that follow the data. The fastest to hurt a GPU and the wrong pick when someone shares the machine","md",null,{},true,{"title":196,"description":321},"WdC2Coj4ToLpdc_iS3M-Y31qCE6UOkqvCT4yrqfWvzs",[329,323],{"title":192,"path":193,"stem":194,"description":330,"children":-1},"Argon2 with memory reads that never depend on the password. Side channels get nothing and it needs more passes for it",1790887232659]