{"_id":"@aeternity/argon2-browser","_rev":"9-8b5e5b68d19fb7e279e14a854caeeab5","name":"@aeternity/argon2-browser","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@aeternity/argon2-browser","version":"0.1.0","author":{"name":"Antelle"},"license":"MIT","_id":"@aeternity/argon2-browser@0.1.0","maintainers":[{"name":"thepiwo","email":"piwo.mail@googlemail.com"},{"name":"dincho","email":"npm@xbuv.com"},{"name":"davidyuk","email":"denis_davidyuk@hotmail.com"},{"name":"mradkov","email":"milenradkov@me.com"}],"homepage":"https://github.com/aeternity/argon2-browser#readme","bugs":{"url":"https://github.com/aeternity/argon2-browser/issues"},"dist":{"shasum":"bf0e84229f1cbae1607b87014b1111130d7914f3","tarball":"https://registry.npmjs.org/@aeternity/argon2-browser/-/argon2-browser-0.1.0.tgz","fileCount":9,"integrity":"sha512-WbRLwIFw4fz5AFIEet2u2N6FdqEqMJp6D4QkyNVT9fqvh7lyV9yVyuejC0x5poBM+FUN2oTTkkFINamln0XFGw==","signatures":[{"sig":"MEUCIQD6RcdSeoarlO4lb7wa8uok2RM11JsAifIhyOFZIpYiawIgBmuvpKuWnY2GJGTslSa/jnI2rra9HgobKsVanuo7zNc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":139119,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiALtPCRA9TVsSAnZWagAAFGUP/2bPxwm7m4oXbdVXTTmx\n6JWig4tF3csebpHfJ0DoAmpsLftzgEvVoYQo0jnOwADwQRkk4ofS84LEj/de\n1r3ZEM2KzOo+5PMLSc6SkbQHLR6TFUZCZHGGpMeoVc6Zjre45YzM7Lxwn11T\n3Rmw8E/qfISYe8sJBCLxhK1hHEEs2lWfno99IwFHkETEc0h68tJ2ntAI3OFT\nv293fwLSaad3w37jVjEeIELRit6ms3j0MdZrjMSHdpCX00GTBAHpxIZuHgIb\nyx3j6Db55mJJMz+rtGH4bhluQeVXZUkkqn6eePz9cz3vaZuU0DDyqMXVdKG+\n9sOUV9NqgAmcfAxs3MOQeiCkKz4SsysiJiRxllVwQ9q0YgL0e4xrvOLF7kSS\nyvWz75eITaAwlAs3xeuzUCWEx6XfFQESPaI0kiA9H0bVWh9pQwYyZ2FIkJ6N\nmYSg7aQ1pMAnDP2CHupwhakqkLO3hbzOi/ZFKat094/e4n+IAunugFdSCi2+\n9t/nZYPRVMK744WReWb4cmUHHbGe7o927/jVa42LW4UOlQZLa2fMojXz8hb3\n8+c6Gbbkrd7Pj5tASuTTjRFbjHZ3FLO58Da0pBRyIInh0cBm/aagFQLqKci4\n1I8ftc5e19XRfzkos9+ATesjo61kacP2xygJpZbBlk6IK5cczZzJDnJCblwH\nMqpV\r\n=2Ev0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/argon2.min.js","gitHead":"273255bf7a7769d6f9974639a7f6475a91918b69","scripts":{"test":"mocha","build":"webpack"},"_npmUser":{"name":"davidyuk","email":"denis_davidyuk@hotmail.com"},"repository":{"url":"git+https://github.com/aeternity/argon2-browser.git","type":"git"},"_npmVersion":"8.3.2","description":"Argon2 library compiled for browser runtime","directories":{"doc":"docs","lib":"lib"},"_nodeVersion":"16.13.2","_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.4","mocha":"^8.4.0","webpack":"^5.37.1","prettier":"^2.3.0","puppeteer":"^9.1.1","http-server":"^0.12.3","null-loader":"^4.0.1","webpack-cli":"^4.7.0","base64-loader":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/argon2-browser_0.1.0_1644215119628_0.6212456878424253","host":"s3://npm-registry-packages"},"deprecated":"This package is no longer maintained"},"0.1.1":{"name":"@aeternity/argon2-browser","version":"0.1.1","author":{"name":"Antelle"},"license":"MIT","_id":"@aeternity/argon2-browser@0.1.1","maintainers":[{"name":"thepiwo","email":"piwo.mail@googlemail.com"},{"name":"dincho","email":"npm@xbuv.com"},{"name":"davidyuk","email":"denis_davidyuk@hotmail.com"},{"name":"mradkov","email":"milenradkov@me.com"}],"homepage":"https://github.com/aeternity/argon2-browser#readme","bugs":{"url":"https://github.com/aeternity/argon2-browser/issues"},"dist":{"shasum":"eb8ea6ecb37ff14ef006ef85d400c01cab0d8498","tarball":"https://registry.npmjs.org/@aeternity/argon2-browser/-/argon2-browser-0.1.1.tgz","fileCount":9,"integrity":"sha512-Bdh/qhA6y6Jj6gnIMjBL0Tg7oCOxUjdlOnaFFpWmdADRH3+soIkGSDK5WCFTznlBiHocLsUKrkRCjVX70QHAtg==","signatures":[{"sig":"MEUCIA07ubPDp0ZkBlUZJ7NCUGkCRhXSHP7dTM5JpUk6PeL0AiEAtMUDayScUJBOJ523IPUDosuO+I2h6RYkII7qx1Tu6cs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":137872,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiANMvCRA9TVsSAnZWagAAxF8P/0dQ0Gv5a+oUF3ZDV6k3\nJpPNJdKMQjpkkLNQ/3bN+jsgOFu7WNzBp6RzI4X45tV5JLWNkR6ar+7qFa7r\nQExjhXL9VrUir6nP/sTWf7h0N451SGbcB1u8GOnFYgUjfUR8CT7S1Rfuz7k8\n52CdusNc+ukWHR49E28klNu8d+ZLq5Em/00tXzs6+GWKgdlLQL1sc2bL0rh0\ngFrC4r2RZnodTxemSsoPnq7OH51zzGczys16ZZNvPhKk9zwMbjWcs+a3dHSH\n3MPcIAbCsjQpoVXqaEakpfopQXedThTAhP8NFkp+jw9FSzn42kspofPbaIJq\nAYwGgu1GlyycmJZHdOTubepS1WQOKxQx2RaX8tF3sdDJH5aEGTfEW7razv63\niwS5YER6RiVBDCQAM+9vW5ZncrrFz6EaFVLObsSpttyhSeeI5nhhTbMTENHu\ndPH3VsBkwiBX84tgATbubzbYaGVTH1U5SDSAB6E2rK1zeDUa4X/CyeNfXwfi\nRh56UQQ7BjxTFjFo23pCV4A1mnjo2Y+6pGzwYMH2Jkt4QjSnJXdd5o36KV67\neO4ikOHzGBJ1ux/N8iwBN7Gaj8cIN0MVV1/aO22haHaVERD7WmTToZPhqAA9\n9ZDcnQMP2pIKTT8iUTvA7im2Sk6wg4qIE6OeuGnfc24mY8EvIZ7FdtrJ5Y/f\ngj5q\r\n=ja42\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/argon2.min.js","gitHead":"544768b16631fdc5aeb336867999e0d79e2b1f75","scripts":{"test":"mocha","build":"webpack"},"_npmUser":{"name":"davidyuk","email":"denis_davidyuk@hotmail.com"},"repository":{"url":"git+https://github.com/aeternity/argon2-browser.git","type":"git"},"_npmVersion":"8.3.2","description":"Argon2 library compiled for browser runtime","directories":{"doc":"docs","lib":"lib"},"_nodeVersion":"16.13.2","_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.4","mocha":"^8.4.0","webpack":"^5.37.1","prettier":"^2.3.0","puppeteer":"^9.1.1","http-server":"^0.12.3","null-loader":"^4.0.1","webpack-cli":"^4.7.0","base64-loader":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/argon2-browser_0.1.1_1644221231413_0.00024801880902747264","host":"s3://npm-registry-packages"},"deprecated":"This package is no longer maintained"},"0.1.2":{"name":"@aeternity/argon2-browser","version":"0.1.2","author":{"name":"Antelle"},"license":"MIT","_id":"@aeternity/argon2-browser@0.1.2","maintainers":[{"name":"thepiwo","email":"piwo.mail@googlemail.com"},{"name":"dincho","email":"npm@xbuv.com"},{"name":"davidyuk","email":"denis_davidyuk@hotmail.com"},{"name":"mradkov","email":"milenradkov@me.com"}],"homepage":"https://github.com/aeternity/argon2-browser#readme","bugs":{"url":"https://github.com/aeternity/argon2-browser/issues"},"dist":{"shasum":"b93794595678dc85554cce038de2a7a8e30c3556","tarball":"https://registry.npmjs.org/@aeternity/argon2-browser/-/argon2-browser-0.1.2.tgz","fileCount":9,"integrity":"sha512-nL3xZYf0JXVIm6HFyppXn9fgHjmSjYa1PBYXzD1/pLbECdikD+r3IuhIR3dAwn8nq9xShjHPr9ZnJUbbUvva4g==","signatures":[{"sig":"MEUCIQC+lMP8AGNW6B9PsTgmkdpoEERMu81mdk4jSXOl8F6WgwIgQ1/PihnbFQMDZMCLG22QCWHu76CPpzbcbm6vX5Ca63c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":138082,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiB1e0CRA9TVsSAnZWagAA8dEP/j/ZGC26XJvYE95K9Cy4\nU/lvRnnBmBi+99/1sUjTZ+0clOvmFyPSLhN952IpYve1BaYUR7wMIy7W7o12\nV0rVxqpu/8brCpCPLm+yIjFqiCqciKBAJhK1O8wCKbblyP2C7u9JDWc0yh4k\n2/QQB8/ucGt3BGXdmFoUPD/tzcWBfwdmG/ZIRmP7wxi2IY41eRJfGvMSEi5z\netmyOF1J+Cug3IyCIf74ybMTFYy6dOC0KpBfPI1g3xdCyFuRbWYO3AlKOP6y\nKmDVp3PQN4o7HFeuHKd4JuXivMNMov/j5D1tx2LMBMx7MZbmQ6DeIEKMC5HN\nJCqX98frkp/MGL1ehLCU8Uc7ifPQ3J25rQkZcsu1l3mG3ARswGla9baGL30R\nPRGW9bV7XZKA4UkKutCmp3STSqQymu0Awv97iwrRHJqM+g8I+0oFQ0N+nQy2\nzAWpr2LVOG39fOMM1uyNwFI9UKixRc6ViV/kIVMHzDpi/Mnd6pz/dTACd4dj\nmjDIY3AVv9Ckb+OqfVfH4nXayRs10k/lRriQtIuBolIBrQD+5xXyBbxp8Os/\npJhR5BB/VBtEaE8TIdlo4+F4lsl7CgIo9epdQuvkRINk+EaA94OEFSJE7xmP\nnppe9ygqIqG29gzSJOuOVZ4RVIyGktf+pTz4yLlG4Qopyh15KFPuvJ53wy2V\nfG3N\r\n=0Efc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/argon2.min.js","gitHead":"8a62ed6a9f8f0db96baee09033511112afa2e7ec","scripts":{"test":"mocha","build":"webpack"},"_npmUser":{"name":"davidyuk","email":"denis_davidyuk@hotmail.com"},"repository":{"url":"git+https://github.com/aeternity/argon2-browser.git","type":"git"},"_npmVersion":"8.3.2","description":"Argon2 library compiled for browser runtime","directories":{"doc":"docs","lib":"lib"},"_nodeVersion":"16.13.2","_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.4","mocha":"^8.4.0","webpack":"^5.37.1","prettier":"^2.3.0","puppeteer":"^9.1.1","http-server":"^0.12.3","null-loader":"^4.0.1","webpack-cli":"^4.7.0","base64-loader":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/argon2-browser_0.1.2_1644648372639_0.3564231984586621","host":"s3://npm-registry-packages"},"deprecated":"This package is no longer maintained"}},"time":{"created":"2022-02-07T06:25:19.581Z","modified":"2025-04-05T21:04:15.762Z","0.1.0":"2022-02-07T06:25:19.972Z","0.1.1":"2022-02-07T08:07:11.543Z","0.1.2":"2022-02-12T06:46:12.831Z"},"bugs":{"url":"https://github.com/aeternity/argon2-browser/issues"},"author":{"name":"Antelle"},"license":"MIT","homepage":"https://github.com/aeternity/argon2-browser#readme","repository":{"url":"git+https://github.com/aeternity/argon2-browser.git","type":"git"},"description":"Argon2 library compiled for browser runtime","maintainers":[{"name":"aebot","email":"dincho.todorov@gmail.com"},{"name":"davidyuk","email":"denis_davidyuk@hotmail.com"},{"name":"dincho","email":"npm@xbuv.com"},{"name":"hanssv","email":"hanssv@gmail.com"},{"name":"marc0olo","email":"info@walz-consulting.de"},{"name":"thepiwo","email":"piwo.mail@googlemail.com"}],"readme":"# Argon2 in browser ![Build](https://github.com/antelle/argon2-browser/workflows/Build/badge.svg)\n\nArgon2 is a password-hashing function, the winner of Password Hashing Competition. Here Argon2 library is compiled for browser runtime.\n\n[Live demo](https://antelle.github.io/argon2-browser)\n\n[More about Argon2](https://github.com/P-H-C/phc-winner-argon2)\n\n[Usage](#usage)\n\n## The numbers\n\n|                   | Time, ms (lower is better) |\n|-------------------|----------------------------|\n| Chrome WASM       | 225                        |\n| Chrome WASM+SIMD  | 119                        |\n| Firefox WASM      | 195                        |\n| Firefox WASM+SIMD | 135                        |\n| Safari WASM       | 174                        |\n| Native -O3 SSE    |  15                        |\n| Native -O3        |  42                        |\n| Native -O1        |  55                        |\n| Native -O0        | 395                        |\n\n## Test Environment\n\nEnvironment used to get the numbers above:\n\nAlgorithm parameters (`-d -t 100 -m 10 -p 1`):\n- iterations: 100\n- memory: 1MiB (1024 KiB)\n- hash length: 32\n- parallelism: 1\n- argon2d\n\nEnvironment:\n\n- MacBook pro 2020, Intel Core i7, 2.3GHz (x64), macOS 10.14.6 (18G95)\n- Chrome 85.0.4183.83 (Official Build)\n- Firefox 80.0.1\n- Safari 13.1.2 (15609.3.5.1.3)\n- native argon2 compiled from https://github.com/P-H-C/phc-winner-argon2 @440ceb9\n\n## Code size\n\n`ll -h dist`\n\n| File        | Code size, kB |\n|-------------|---------------|\n| argon2.js   | 14            |\n| argon2.wasm | 25            |\n\n## Is Argon2 modified?\n\nNo, it's used a submodule from upstream.\n\n## SIMD\n\nSIMD is not quite here in WebAssembly, however for those who would like to give it a try,\nwe already provide a working build with SIMD. At the moment it works only in Chrome,\nto be able to use it, you need to either add\n[this origin trial](https://developers.chrome.com/origintrials/#/view_trial/-4708513410415853567) to your website,\nor enable the SIMD feature in Chrome flags.\n\nMore about WebAssembly SIMD support in V8: https://v8.dev/features/simd\n\nOn Firefox you need to enable `javascript.options.wasm_simd` option in about:config.\n\nTo use the SIMD version, load `argon2-simd.wasm` instead of `argon2.wasm`.\n\n## JS Library\n\nThe library can be installed from npm:\n```bash\nnpm install argon2-browser\n```\n\nThen add this script to your HTML or use your favorite bundler:\n```html\n<script src=\"node_modules/argon2-browser/dist/argon2.min.js\"></script>\n```\n\nAlternatively, you can use the bundled version, this way you can include just one script:\n```html\n<script src=\"node_modules/argon2-browser/dist/argon2-bundled.min.js\"></script>\n```\n\nCalculate the hash:\n```javascript\nargon2.hash({ pass: 'password', salt: 'somesalt' })\n    .then(h => console.log(h.hash, h.hashHex, h.encoded))\n    .catch(e => console.error(e.message, e.code))\n```\n\nVerify the encoded hash (if you need it):\n```javascript\nargon2.verify({ pass: 'password', encoded: 'enc-hash' })\n    .then(() => console.log('OK'))\n    .catch(e => console.error(e.message, e.code))\n```\n\nOther parameters:\n```javascript\nargon2.hash({\n    // required\n    pass: 'password',\n    salt: 'salt',\n    // optional\n    time: 1, // the number of iterations\n    mem: 1024, // used memory, in KiB\n    hashLen: 24, // desired hash length\n    parallelism: 1, // desired parallelism (it won't be computed in parallel, however)\n    secret: new Uint8Array([...]), // optional secret data\n    ad: new Uint8Array([...]), // optional associated data\n    type: argon2.ArgonType.Argon2d, // Argon2d, Argon2i, Argon2id\n})\n// result\n.then(res => {\n    res.hash // hash as Uint8Array\n    res.hashHex // hash as hex-string\n    res.encoded // encoded hash, as required by argon2\n})\n// or error\n.catch(err => {\n    err.message // error message as string, if available\n    err.code // numeric error code\n})\n```\n\n```javascript\nargon2.verify({\n    // required\n    pass: 'password',\n    encoded: 'enc-hash',\n    // optional\n    secret: new Uint8Array([...]), // optional secret data\n    ad: new Uint8Array([...]), // optional associated data\n    type: argon2.ArgonType.Argon2d, // Argon2d, Argon2i, Argon2id. default: guess\n})\n// result\n.then(res => {\n    res.hash // hash as Uint8Array\n    res.hashHex // hash as hex-string\n    res.encoded // encoded hash, as required by argon2\n})\n// or error\n.catch(err => {\n    err.message // error message as string, if available\n    err.code // numeric error code\n})\n```\n\n## Usage\n\nYou can use this module in several ways: \n\n1. write the WASM loader manually, for example, if you need more control over memory ([example](docs/js/calc.js));\n2. bundle it with WebPack or another bundler ([example](examples/webpack));\n3. in vanilla js: [example](examples/vanilla);\n4. in node.js: [example](examples/node) (see a note below).\n\n## Bundlers\n\n- WebPack: [examples/webpack](https://github.com/antelle/argon2-browser/tree/master/examples/webpack)\n- create-react-app: [examples/react](https://github.com/antelle/argon2-browser/tree/master/examples/react). Derived from [#38](https://github.com/antelle/argon2-browser/issues/38#issuecomment-749690581)\n\n## Node.js support\n\nOf course you [can use](examples/node) generated WASM in node.js, but it's not sensible: you will get much better speed by compiling it as a native node.js addon, which is not that hard. Wait, it's already done, just install [this package](https://github.com/ranisalt/node-argon2).\n\n## Is it used anywhere?\n\nIt is! [KeeWeb](https://github.com/keeweb/keeweb) (web-based password manager) is using it as a password hashing function implementation.\n[Check out the source code](https://github.com/keeweb/keeweb/blob/develop/app/scripts/util/kdbxweb/kdbxweb-init.js#L11), if you're interested.\n\n## Building\n\nYou can build everything with\n```bash\n./build.sh\n```\n\nPrerequisites:\n- emscripten with WebAssembly support ([howto](http://webassembly.org/getting-started/developers-guide/))\n- CMake\n\n## License\n\n[MIT](https://opensource.org/licenses/MIT)\n","readmeFilename":"README.md"}