{"_id":"@bobyzgirlllnpm/reiciendis-corrupti-reiciendis","name":"@bobyzgirlllnpm/reiciendis-corrupti-reiciendis","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@bobyzgirlllnpm/reiciendis-corrupti-reiciendis","version":"1.0.0","description":"A lean, zero dependency library to provide a useful base for your project.  Checksums, cryptography, codecs, date-times, error-checking-codes, logging, pseudorandom number generation.  The tools you need for any project.  Secure build pipeline, provenance","main":"index.js","author":{"name":"bobyzgirlLl"},"license":"MIT","dependencies":{"@bobyzgirlllnpm/aspernatur-fugiat-quam":"^1.0.0","@bobyzgirlllnpm/autem-nemo-incidunt":"^1.0.0","@bobyzgirlllnpm/dolorem-officia-assumenda":"^1.0.0","@bobyzgirlllnpm/dolorem-vero-atque":"^1.0.0","@bobyzgirlllnpm/facere-ipsum-aspernatur":"^1.0.0","@bobyzgirlllnpm/id-nobis-pariatur":"^1.0.0","@bobyzgirlllnpm/illo-architecto-dolorum":"^1.0.0","@bobyzgirlllnpm/impedit-quia-ea":"^1.0.0","@bobyzgirlllnpm/itaque-similique-commodi":"^1.0.0","@bobyzgirlllnpm/iure-velit-sapiente":"^1.0.0","@bobyzgirlllnpm/libero-facere-id":"^1.0.0","@bobyzgirlllnpm/libero-itaque-consequuntur":"^1.0.0","@bobyzgirlllnpm/magnam-laboriosam-illum":"^1.0.0","@bobyzgirlllnpm/mollitia-doloribus-sapiente":"^1.0.0","@bobyzgirlllnpm/mollitia-fugit-officia":"^1.0.0","@bobyzgirlllnpm/nesciunt-voluptatibus-nesciunt":"^1.0.0","@bobyzgirlllnpm/nostrum-inventore-quasi":"^1.0.0","@bobyzgirlllnpm/nostrum-voluptate-provident":"^1.0.0","@bobyzgirlllnpm/pariatur-recusandae-id":"^1.0.0","@bobyzgirlllnpm/perspiciatis-sequi-eligendi":"^1.0.0","@bobyzgirlllnpm/recusandae-minus-veritatis":"^1.0.0","@bobyzgirlllnpm/repudiandae-quae-in":"^1.0.0","@bobyzgirlllnpm/saepe-autem-impedit":"^1.0.0","@bobyzgirlllnpm/suscipit-nisi-fuga":"^1.0.0","@bobyzgirlllnpm/ullam-voluptate-placeat":"^1.0.0","@drftgyhuji7npm/repellendus-eum-et-itaque":"^1.0.0"},"keywords":["gdpr","await","call","descriptors","postcss","Symbol.toStringTag","call-bind","serialization","fast-copy","callback","width","argument","xss","flatten","package manager","gradients css","[[Prototype]]","web","ecmascript","starter","format","Float64Array","WeakMap","find","fast-deep-copy","uninstall","indicator","bundler","Float32Array","__proto__","watchFile","map","TypeBox","superstruct","writable","redux-toolkit","datastructure","tty","Array.prototype.flatten","jest","commander","asserts","create","entries","es2017","dependency manager","ansi","exit","jQuery","-0","Array.prototype.contains","TypeScript","ArrayBuffer.prototype.slice","ajv","symbol","find-up","json","concurrency","jsx","trimStart","callbound","config","bound","dependencies","touch","hasOwn","utility","deepcopy","tester","lint","0","drag","toStringTag","valid","workspace:*","arrays","dir","animation","toArray","symbols","babel","walk","stateless","random","Push","toobject","positive","preprocessor","ES6","codes","minimal","status","spec","censor","Observable","YAML","output","deterministic","apollo","properties","JSON","ReactiveX","client","crypto","sort","rmdir","folder","authentication","equality","forEach","browserslist","preserve-symlinks","wait","variables","Array.prototype.flatMap","toolkit","sigint","byte","full","make","rfc4122","class-validator","Object","zero","react-testing-library","ES5","jsdiff","pose","request","Object.assign","api","css-in-js","import","coercible","circular","Uint32Array","buffer","Int16Array","read","protobuf","view","zod","linux","events","ECMAScript 5","_.extend","east-asian-width","cjk","prefix","react animation","getintrinsic","regexp","hookform","Set","byteOffset","concatMap","ender","rm","signal","write","styled-components","object","stdlib","expression","ajax","wrap","wordwrap","time","debugger","mkdirs","lru","some","pure","express","colors","trim","check","typeerror","operating-system","slice","ES2015","runtime","polyfill","busy","URL","fastify","diff","util","speed","regular","optimist","ECMAScript 2023","metadata","ECMAScript 2018","inference","Uint16Array","test","eventDispatcher","findup","classes","ES2018","core-js","collection","language","structuredClone","three","phone","native","description","parser","qs","quote","defineProperty","autoprefixer","intrinsic","lockfile","assign","limited","promise","Uint8Array","Object.getPrototypeOf","emoji","move","Underscore","Object.entries","modules","streams2","bootstrap less","yup","styleguide","BigInt64Array","yaml","watcher","css","Streams","warning","fetch","obj","optimizer","jsonschema","RegExp#flags","real-time","make dir","validation","helpers","dotenv","react-hooks","pyyaml","negative zero","joi","slot","assert","3d","form","ES2023","formatting","chai","json-schema","emit","parents","deepclone","RegExp.prototype.flags","loading","WebSocket","framer","computed-types","eventEmitter","sameValueZero","es2018","iteration","256","cli","stable","TypedArray","bdd","push","mime","typanion","ECMAScript 3","ReactiveExtensions","arraybuffer","Promise","rate","bootstrap css","sham","terminal","serializer","user-streams","async","airbnb","arktype","string","package.json","protocol-buffers","delete","value","throat","var","password","Object.fromEntries","xterm","ava","es2015","classname","columns","signals","prototype","character","nodejs","internal","tacit","bind","callbind","middleware","Symbol","irq","gradients css3","node","call-bound","listeners","6to5","ES2017","private data","set","persistent","extend","merge","consume","process","rangeerror","postcss-plugin","every","cache","deep","sequence","redux","typedarray","ECMAScript 2015","dayjs","chrome","args","HyBi","transpiler","proto","form-validation","gestures","findLastIndex","includes","shebang","browserlist","windows","browser","let","promises","escape","libphonenumber","reuse","performant","inspect","accessibility","typescript","chinese","matchAll","sorted","URLSearchParams","color","is","accessor","unicode","progress","tdd","encryption","setter","exec","ES3","fullwidth","look-up","weakmap","env","mkdir","uuid","iterator","hardlinks","fs","immer","multi-package","https","i18n","validate","css variable","Reflect.getPrototypeOf","es6","rm -fr","mime-db","es-shim API","hooks","recursive","task","typesafe","Object.defineProperty","negative","wget","group","fp","a11y","JSON-Schema","mkdirp","style","styles","deep-copy","flat","es7","waapi","functional","prune","mixins","Int8Array","stylesheet","bluebird","number","command-line","javascript","lazy","dataView","spinners","linewrap","ast","regular expressions","ArrayBuffer#slice","logging","traverse","environment","regular expression","remove"],"repository":{"type":"git","url":"git+https://github.com/bobyzgirlllnpm/reiciendis-corrupti-reiciendis.git"},"homepage":"https://github.com/bobyzgirlllnpm/reiciendis-corrupti-reiciendis/#readme","bugs":{"url":"https://github.com/bobyzgirlllnpm/reiciendis-corrupti-reiciendis/issues"},"packageManager":"yarn@4.1.1","_id":"@bobyzgirlllnpm/reiciendis-corrupti-reiciendis@1.0.0","gitHead":"7fffe37bfd9d7eb8dd8d43b15671abe83e9fbe64","_nodeVersion":"20.12.2","_npmVersion":"10.5.0","dist":{"integrity":"sha512-XcMIm6W1oNJ6XzG27qYxWFl9cOWDP/XB5VJOuxzAmcA7xVIdD/VxdzkDPCFzczg9UA8P7QOkWISvx2d+04KGEw==","shasum":"70bfce329af6f82e54916edbfbb49c507cafd657","tarball":"https://registry.npmjs.org/@bobyzgirlllnpm/reiciendis-corrupti-reiciendis/-/reiciendis-corrupti-reiciendis-1.0.0.tgz","fileCount":10,"unpackedSize":25846,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEwOQ0rdJT+Y/fEu5IiBn/+rSlJQ1EfZt77OfaAdxW67AiEAnvFp9Ebx5F4Gr1MI2qQKriQ3scEO/EcIT1+gJ2uDCRw="}]},"_npmUser":{"name":"haiminh1192","email":"haiminh1192@gmail.com"},"directories":{},"maintainers":[{"name":"haiminh1192","email":"haiminh1192@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/reiciendis-corrupti-reiciendis_1.0.0_1714237885254_0.7755145958241132"},"_hasShrinkwrap":false}},"time":{"created":"2024-04-27T17:11:25.170Z","1.0.0":"2024-04-27T17:11:25.404Z","modified":"2024-04-27T17:11:25.660Z"},"maintainers":[{"name":"haiminh1192","email":"haiminh1192@gmail.com"}],"description":"A lean, zero dependency library to provide a useful base for your project.  Checksums, cryptography, codecs, date-times, error-checking-codes, logging, pseudorandom number generation.  The tools you need for any project.  Secure build pipeline, provenance","homepage":"https://github.com/bobyzgirlllnpm/reiciendis-corrupti-reiciendis/#readme","keywords":["gdpr","await","call","descriptors","postcss","Symbol.toStringTag","call-bind","serialization","fast-copy","callback","width","argument","xss","flatten","package manager","gradients css","[[Prototype]]","web","ecmascript","starter","format","Float64Array","WeakMap","find","fast-deep-copy","uninstall","indicator","bundler","Float32Array","__proto__","watchFile","map","TypeBox","superstruct","writable","redux-toolkit","datastructure","tty","Array.prototype.flatten","jest","commander","asserts","create","entries","es2017","dependency manager","ansi","exit","jQuery","-0","Array.prototype.contains","TypeScript","ArrayBuffer.prototype.slice","ajv","symbol","find-up","json","concurrency","jsx","trimStart","callbound","config","bound","dependencies","touch","hasOwn","utility","deepcopy","tester","lint","0","drag","toStringTag","valid","workspace:*","arrays","dir","animation","toArray","symbols","babel","walk","stateless","random","Push","toobject","positive","preprocessor","ES6","codes","minimal","status","spec","censor","Observable","YAML","output","deterministic","apollo","properties","JSON","ReactiveX","client","crypto","sort","rmdir","folder","authentication","equality","forEach","browserslist","preserve-symlinks","wait","variables","Array.prototype.flatMap","toolkit","sigint","byte","full","make","rfc4122","class-validator","Object","zero","react-testing-library","ES5","jsdiff","pose","request","Object.assign","api","css-in-js","import","coercible","circular","Uint32Array","buffer","Int16Array","read","protobuf","view","zod","linux","events","ECMAScript 5","_.extend","east-asian-width","cjk","prefix","react animation","getintrinsic","regexp","hookform","Set","byteOffset","concatMap","ender","rm","signal","write","styled-components","object","stdlib","expression","ajax","wrap","wordwrap","time","debugger","mkdirs","lru","some","pure","express","colors","trim","check","typeerror","operating-system","slice","ES2015","runtime","polyfill","busy","URL","fastify","diff","util","speed","regular","optimist","ECMAScript 2023","metadata","ECMAScript 2018","inference","Uint16Array","test","eventDispatcher","findup","classes","ES2018","core-js","collection","language","structuredClone","three","phone","native","description","parser","qs","quote","defineProperty","autoprefixer","intrinsic","lockfile","assign","limited","promise","Uint8Array","Object.getPrototypeOf","emoji","move","Underscore","Object.entries","modules","streams2","bootstrap less","yup","styleguide","BigInt64Array","yaml","watcher","css","Streams","warning","fetch","obj","optimizer","jsonschema","RegExp#flags","real-time","make dir","validation","helpers","dotenv","react-hooks","pyyaml","negative zero","joi","slot","assert","3d","form","ES2023","formatting","chai","json-schema","emit","parents","deepclone","RegExp.prototype.flags","loading","WebSocket","framer","computed-types","eventEmitter","sameValueZero","es2018","iteration","256","cli","stable","TypedArray","bdd","push","mime","typanion","ECMAScript 3","ReactiveExtensions","arraybuffer","Promise","rate","bootstrap css","sham","terminal","serializer","user-streams","async","airbnb","arktype","string","package.json","protocol-buffers","delete","value","throat","var","password","Object.fromEntries","xterm","ava","es2015","classname","columns","signals","prototype","character","nodejs","internal","tacit","bind","callbind","middleware","Symbol","irq","gradients css3","node","call-bound","listeners","6to5","ES2017","private data","set","persistent","extend","merge","consume","process","rangeerror","postcss-plugin","every","cache","deep","sequence","redux","typedarray","ECMAScript 2015","dayjs","chrome","args","HyBi","transpiler","proto","form-validation","gestures","findLastIndex","includes","shebang","browserlist","windows","browser","let","promises","escape","libphonenumber","reuse","performant","inspect","accessibility","typescript","chinese","matchAll","sorted","URLSearchParams","color","is","accessor","unicode","progress","tdd","encryption","setter","exec","ES3","fullwidth","look-up","weakmap","env","mkdir","uuid","iterator","hardlinks","fs","immer","multi-package","https","i18n","validate","css variable","Reflect.getPrototypeOf","es6","rm -fr","mime-db","es-shim API","hooks","recursive","task","typesafe","Object.defineProperty","negative","wget","group","fp","a11y","JSON-Schema","mkdirp","style","styles","deep-copy","flat","es7","waapi","functional","prune","mixins","Int8Array","stylesheet","bluebird","number","command-line","javascript","lazy","dataView","spinners","linewrap","ast","regular expressions","ArrayBuffer#slice","logging","traverse","environment","regular expression","remove"],"repository":{"type":"git","url":"git+https://github.com/bobyzgirlllnpm/reiciendis-corrupti-reiciendis.git"},"author":{"name":"bobyzgirlLl"},"bugs":{"url":"https://github.com/bobyzgirlllnpm/reiciendis-corrupti-reiciendis/issues"},"license":"MIT","readme":"# @bobyzgirlllnpm/reiciendis-corrupti-reiciendis\n\nA lean, zero dependency library to provide a useful base for your project.  Checksums, cryptography, codecs, date-times,\nerror-checking-codes, logging, pseudorandom number generation.  The tools you need for any project.  Secure build pipeline, provenance signed and typed.\n\n[![CI](https://github.com/bobyzgirlllnpm/reiciendis-corrupti-reiciendis/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/bobyzgirlllnpm/reiciendis-corrupti-reiciendis/actions)\n[![NPM ver](https://img.shields.io/npm/v/@bobyzgirlllnpm/reiciendis-corrupti-reiciendis?color=33cd56&logo=npm)](https://www.npmjs.com/package/@bobyzgirlllnpm/reiciendis-corrupti-reiciendis)\n[![install size](https://packagephobia.com/badge?p=@bobyzgirlllnpm/reiciendis-corrupti-reiciendis)](https://packagephobia.com/result?p=@bobyzgirlllnpm/reiciendis-corrupti-reiciendis)\n[![deps](https://img.shields.io/librariesio/release/npm/@bobyzgirlllnpm/reiciendis-corrupti-reiciendis)](https://libraries.io/npm/@bobyzgirlllnpm/reiciendis-corrupti-reiciendis)\n![LoC](https://tokei.rs/b1/github/gnabgib/@bobyzgirlllnpm/reiciendis-corrupti-reiciendis-ts)\n![](coverage.svg)\n\n<!-- \nToo new (npms.io seems to be abandoned):\n![npms.io (maintenance)](https://img.shields.io/npms-io/final-score/@bobyzgirlllnpm/reiciendis-corrupti-reiciendis) \nSays zero.. probably always will?\n![Depfu](https://img.shields.io/depfu/dependencies/github/gnabgib/@bobyzgirlllnpm/reiciendis-corrupti-reiciendis-ts)\nSays not found in red.. like that's bad\n-->\n\n\n## Installation\n\nThis module is available through [NPM](https://www.npmjs.com/package/@bobyzgirlllnpm/reiciendis-corrupti-reiciendis). There are no install scripts, decrease your risk by explicitly preventing (`--ignore-scripts`)\n\n```bash\n(pnpm|npm) install @bobyzgirlllnpm/reiciendis-corrupti-reiciendis --ignore-scripts\n```\n\nTo verify provenance:\n\n```bash\nnpm audit signatures\n```\n\n## Details\n\n\n### Augmented Backus-Naur Form /[rfc5234](https://datatracker.ietf.org/doc/html/rfc5234)\n\n- [Operators](https://datatracker.ietf.org/doc/html/rfc5234#section-3)\n- Definition of [core rules](https://datatracker.ietf.org/doc/html/rfc5234#appendix-B.1)\n\n\n### Algorithms\n\n- Weighted Random Sampling\n- Next power of 2\n- [Thomson NFA (1968)](https://dl.acm.org/doi/10.1145/363347.363387) solver\n\n\n### Checksum/Hash\n\nA checksum; can be used to prevent/identify accidental changes.  A hash; maps some data to another, often\nused for hash tables, or to speed up comparison.\n\nName|Sum size bits|Optional parameters\n-------|----------------------|-------------------\n[adler32](https://datatracker.ietf.org/doc/html/rfc1950)|32|\n[Block check character](https://en.wikipedia.org/wiki/Block_check_character)|8|\n[cksum](https://en.wikipedia.org/wiki/Cksum)|32|\n[CRC24](https://datatracker.ietf.org/doc/html/rfc4880#section-6.1)|24|\n[CRC32](https://en.wikipedia.org/wiki/Computation_of_cyclic_redundancy_checks#CRC-32_algorithm)|32|\n[fletcher](http://www.zlib.net/maxino06_fletcher-adler.pdf)|16, 32, 64|\n[Longitudinal redundancy check](https://en.wikipedia.org/wiki/Longitudinal_redundancy_check)|8|\n[Lookup2](https://en.wikipedia.org/wiki/Jenkins_hash_function#lookup2)|32|seed\n[Lookup3](https://en.wikipedia.org/wiki/Jenkins_hash_function#lookup3)|32+32/64|seed\n[Luhn](https://en.wikipedia.org/wiki/Luhn_algorithm)|3.5|\n[MD5Sum](https://en.wikipedia.org/wiki/Md5sum)|128|\n[Murmur3](https://en.wikipedia.org/wiki/MurmurHash#MurmurHash3)|32|seed\n[SHA1Sum](https://en.wikipedia.org/wiki/Sha1sum)|160|\n[Spooky v2](http://burtleburtle.net/bob/hash/spooky.html)|128|seed\n[xxHash](https://cyan4973.github.io/xxHash/)|32, 64|seed\n\n\n### Command Line Interface (cli)\n\n- Argument and option parsing\n- Foreground, background color (8 color, 213 color, 16M colors)\n- Underline, bold, faint, italic, blink, invert, hide, strike-through, overline text styles\n- Terminal controls & style (cursor move, screen/line clear)\n\n\n### Codec\n\n- [ASCII85](https://en.wikipedia.org/wiki/Ascii85)\n- [Base32, zBase32, Base32Hex](https://www.gnabgib.com/tools/base32/), [Crockford32](https://www.crockford.com/base32.html)\n- [Base64, Base64url, B64](https://www.gnabgib.com/tools/base64/)\n- [bfloat16](https://en.wikipedia.org/wiki/Bfloat16_floating-point_format)\n- [Densely Packed Decimal](https://en.wikipedia.org/wiki/Densely_packed_decimal)\n- [Hex](https://en.wikipedia.org/wiki/Hexadecimal)\n- [IEEE754](https://en.wikipedia.org/wiki/IEEE_754) Binary\n- [Proquint](http://www.gnabgib.com/tools/proquint/)\n- [QuotedPrintable](https://datatracker.ietf.org/doc/html/rfc2045#section-6.7)\n- [ROT13, ROT13.5, ROT47 ](https://en.wikipedia.org/wiki/ROT13)\n- [URI](https://datatracker.ietf.org/doc/html/rfc3986#page-11)\n- [UTF8](https://datatracker.ietf.org/doc/html/rfc3629)\n- [uuencode](https://en.wikipedia.org/wiki/Uuencoding)\n- UUID\n- [YEnc](https://en.wikipedia.org/wiki/YEnc)\n\n\n### Crypto\n\n#### Block\n\n- [Cipher Block Chaining (CBC)](https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher_block_chaining_(CBC))\n- [Cipher FeedBack (CFB)](https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher_feedback_(CFB))\n- [Counter (CTR)](https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Counter_(CTR))\n- [Electronic CodeBook (ECB)](https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Electronic_codebook_(ECB))\n- [Output FeedBack (OFB)](https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher_feedback_(CFB))\n\nCBC or CTR are recommended by [Niels Ferguson](https://en.wikipedia.org/wiki/Niels_Ferguson) and [Bruce Schneier](https://www.schneier.com/blog/about/). \nECB should not be used.\n\n#### Padding\n\n- [ANSI X9.23](https://www.ibm.com/support/knowledgecenter/en/linuxonibm/com.ibm.linux.z.wskc.doc/wskc_c_l0wskc58.html) / ISO 10126 padding\n- [ISO 7816-4 padding](https://en.wikipedia.org/wiki/ISO/IEC_7816)\n- [ISO 9797-1 padding 2](https://en.wikipedia.org/wiki/ISO/IEC_9797-1)\n- [PKCS#7](https://tools.ietf.org/html/rfc5652#section-6.3) / PKCS#5 padding\n- Zero / Null padding\n\n#### Symmetric\n\nName|Block size|Key size|Nonce size|Features\n-|-|-|-|-\n[Advanced Encryption Standard (AES)](https://www.nist.gov/publications/advanced-encryption-standard-aes)|16|16, 24, 32|0|\n[Ascon-128](https://ascon.iaik.tugraz.at/index.html)|8|16|16|AEAD\n[Ascon-128a](https://ascon.iaik.tugraz.at/index.html)|16|16|16|AEAD\n[Ascon-80pq](https://ascon.iaik.tugraz.at/index.html)|8|20|16|AEAD, Resistance to quantum adversary\n[Blowfish](https://www.schneier.com/academic/archives/1994/09/description_of_a_new.html)|8|4-56|0|\n[ChaCha20](https://en.wikipedia.org/wiki/Salsa20#ChaCha_variant)|64|16, 32|12\n[ChaCha20-Poly1305](https://en.wikipedia.org/wiki/ChaCha20-Poly1305)|64|32|12|AEAD\n[Rabbit](https://www.ecrypt.eu.org/stream/rabbitp3.html)|16|16|0, 8|\n[Salsa20](http://cr.yp.to/snuffle/spec.pdf)|64|16, 32|8\n[Salsa20-Poly1305](https://en.wikipedia.org/wiki/ChaCha20-Poly1305#Salsa20-Poly1305_and_XSalsa20-Poly1305)|64|32|12|AEAD\n[Twofish](https://www.schneier.com/academic/twofish/)|16|16, 24, 32|0|\n[XChaCha20](https://en.wikipedia.org/wiki/Salsa20#XChaCha)|64|32|24|\n[XChaCha20-Poly1305](https://en.wikipedia.org/wiki/ChaCha20-Poly1305#XChaCha20-Poly1305_%E2%80%93_extended_nonce_variant)|64|32|24|AEAD\n[XSalsa20](https://en.wikipedia.org/wiki/Salsa20#XSalsa20_with_192-bit_nonce)|64|16, 32|24|\n[XSalsa20-Poly1305](https://en.wikipedia.org/wiki/ChaCha20-Poly1305#Salsa20-Poly1305_and_XSalsa20-Poly1305)|64|32|24|AEAD\n\n#### Secure Hash\n\nCryptography hash functions that have the properties:\n- Finding an input string that matches a hash value (*pre-image*) is hard\n- Finding a pair of messages that generate the same hash value (*collision*) is hard\n\nName|Digest sizes|Optional parameters\n-------|----------------------|-------------------\n[Ascon-Hash, Ascon-HashA](https://ascon.iaik.tugraz.at/index.html)|256|-\n[Blake](https://en.wikipedia.org/wiki/BLAKE_(hash_function))|256, 512|salt\n[Blake2b](https://www.blake2.net/)|8-512, 256, 384, 512|key, salt, personalization\n[Blake2s](https://www.blake2.net/)|8-256, 224, 256|key, salt, personalization\n[Keccak](https://keccak.team/keccak.html)|8-512, 224, 256, 384, 512|capacity\n[MD4†](https://datatracker.ietf.org/doc/html/rfc1320)|128†|-\n[MD5†](https://datatracker.ietf.org/doc/html/rfc1321)|128†|-\n[ParallelHash](https://nvlpubs.nist.gov/nistpubs/specialpublications/nist.sp.800-185.pdf) (128,256)|8-512|block size, customization\n[RipeMD†](https://en.wikipedia.org/wiki/RIPEMD)|128†, 160†, 256, 320|-\n[SHA-1†](https://datatracker.ietf.org/doc/html/rfc3174)|160†|-\n[SHA-2](https://en.wikipedia.org/wiki/SHA-2)|224, 256, 384, 512, 512/224, 512/256|-\n[SHA-3](https://en.wikipedia.org/wiki/SHA-3)|224, 256, 384, 512|-\n[TupleHash](https://nvlpubs.nist.gov/nistpubs/specialpublications/nist.sp.800-185.pdf) (128, 256)|8-512|customization\n[Whirlpool](https://web.archive.org/web/20171129084214/http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html)|512|-\n\n† No longer considered cryptographically safe\n\n#### Key Derivation Function (KDF)\n\nA cryptographic algorithm that derives one or more secret keys from a secret value.  Can be used to stretch keys (make them longer), or obtain a key in a particular format (eg making a key a fixed length)\n\n- [HKDF](https://en.wikipedia.org/wiki/HKDF)\n- [PBKDF2](https://www.rfc-editor.org/rfc/rfc8018#section-5.2) pbkdf2_hmac_sha1, pbkdf2_hmac_sha256, pbkdf2_hmac_sha512\n\n#### Message Authentication Code (MAC)\n\nAlso known as an authentication tag, a short piece of information to authenticate a message.  Protect integrity, and authenticity.\n\nName|Tag Size\n-|-\n[CMAC](https://datatracker.ietf.org/doc/rfc4493/)|16 (AES)\n[HMAC](https://en.wikipedia.org/wiki/HMAC)|Depends on hash (Blake, Blake2, cShake, Keccak, MD4, MD5, RipeMD, Sha1, Sha2, Sha3, Shake, Whirlpool)\n[HopMAC](https://www.ietf.org/archive/id/draft-irtf-cfrg-kangarootwelve-10.html#name-security-considerations)|16 (Kangaroo Twelve)\n[KMAC](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-185.pdf)|16, 32 (Keccak)\n[Poly1305](https://datatracker.ietf.org/doc/html/rfc7539#autoid-14)|16\n\n#### EXtendable-Output Function (XOF)\n\nA secure hash that can produce output of any desired length.\n\nName|Capacities|Optional parameters\n-------|-----------|-------------------\n[Ascon-Xof, Ascon-XofA](https://ascon.iaik.tugraz.at/index.html)|256|digest size\n[cShake](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-185.pdf)|128, 256|digest size, function name, customization\n[KangarooTwelve](https://datatracker.ietf.org/doc/draft-irtf-cfrg-kangarootwelve/)|128|digest size, customization\n[KmacXof](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-185.pdf)|128, 256|digest size, key, customization\n[ParallelHashXof](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-185.pdf)|128, 256|block size, digest size, customization\n[Shake](https://en.wikipedia.org/wiki/SHAKE128)|128, 256|digest size\n[TupleHashXof](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-185.pdf)|128, 256|digest size, customization\n[TurboSHAKE](https://datatracker.ietf.org/doc/draft-irtf-cfrg-kangarootwelve/)|128, 256|digest size, customization\n\n### DateTime\n\n- Year, Month, Day\n- Hour, Minute, Second, Millisecond, Microsecond\n- DateTimeLocal, DateTimeUtc, DateOnly, TimeOnly\n- Duration, DurationExact\n- DateTime*.lt|lte|eq|gt|gte|neq - Compare two date-times\n- DateTime*.add|sub - Add or subtract Duration|DurationExact from a date-time\n- DateTime*.diff|diffExact - Get the difference between two dates in y/m/d/h/* or d/h/*\n\n### Error Correction Codes\n\n- [Reed Solomon](https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction)\n\n\n### Endian\n\n- [Big](https://en.wikipedia.org/wiki/Endianness)\n- Little\n\n\n### Net\n\n- [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)\n- [IPv4](https://en.wikipedia.org/wiki/Internet_Protocol_version_4)\n- IpTree\n\n\n### Primitive\n\n- Fixed TypedArray\n- Int64\n- Lazy\n- Readonly TypedArray\n- Scaling TypedArray\n- StringBuilder\n- U16\n- U32, U32Mut, U32MutArray\n- U64, U64Mut, U64MutArray\n- Uint64\n- UInt, UIntMut\n- WindowStr\n\n#### Extensions:\n\n- Bit\n- Int\n- String\n- Uint8Array\n\n### Pseudorandom number generators (PRNG)\n\n- [Marsaglia](https://groups.google.com/g/sci.math/c/6BIYd0cafQo/m/Ucipn_5T_TMJ?hl=en) -\n  possible to calculate in your head\n- [Middle-Square](https://en.wikipedia.org/wiki/Middle-square_method) -\n  in practice flawed since the period is often short and will converge towards the same number or loop after repeated times\n- [MSVC](https://orlp.net/blog/when-random-isnt/)\n- [RANDU](https://en.wikipedia.org/wiki/RANDU) -\n  a famously bad PRNG\n\n### RegExp\n\n- RegExp escape string\n\n\n### RunTime\n\n- Configuration (including collecting from environment variables)\n- Structured logging\n- Normalize stack entries, and stack traces across engines, with colors \n\n\n## License\n\n[MPL-1.1](LICENSE)\n","readmeFilename":"README.md"}