https://github.com/small-tech/eff-diceware-passphrase
EFF Diceware Passphrase module forked from Emil Bay’s excellent module of the same name.
https://github.com/small-tech/eff-diceware-passphrase
Last synced: about 2 months ago
JSON representation
EFF Diceware Passphrase module forked from Emil Bay’s excellent module of the same name.
- Host: GitHub
- URL: https://github.com/small-tech/eff-diceware-passphrase
- Owner: small-tech
- License: other
- Created: 2021-02-27T00:04:42.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2021-03-04T11:57:30.000Z (about 4 years ago)
- Last Synced: 2025-02-15T01:35:44.953Z (2 months ago)
- Language: JavaScript
- Size: 89.8 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# EFF Diceware Passphrase
__Forked from Emil Bay’s excellent module of the same name.__
This is a single-file ESM version of Emil’s excellent module that also removes the sodium-native dependency. Instead, it employs a bring-your-own-crypto approach where you pass a reference to Node’s default crypto module when using the module under Node and it automatically detects and uses the Web Crypto API when running in the browser.
## Install
```
npm i @small-tech/eff-diceware-passphrase
```## Examples
### Node.js
```js
import crypto from 'crypto'
import EFFDicewarePassphrase from '@small-tech/eff-diceware-passphrase'const generate = new EFFDicewarePassphrase(crypto)
const passphrase1 = generate.words(8)
const passphrase2 = generate.entropy(100)console.log('8 words:', passphrase1.join(' '))
console.log('100 bits of entropy:', passphrase2.join(' '))
```(You can find this example in and run it from the _examples/node_ folder.)
### Browser
```html
EFF Diceware Passphrase
EFF Diceware Passphrase Example
-
8 words: -
100 bits of entropy:
import EFFDicewarePassphrase from './eff-diceware-passphrase.min.js'
const generate = new EFFDicewarePassphrase()
const passphrase1 = generate.words(8)
const passphrase2 = generate.entropy(100)
document.getElementById('passphrase1').innerText = passphrase1.join(' ')
document.getElementById('passphrase2').innerText = passphrase2.join(' ')
```
You can find this example (along with a copy of the minified module bundle) in the _examples/browser_ folder.
## Bundling
After you’ve installed the dev dependencies using `npm i`, you can build a single-file ESM bundle by running:
```sh
npm run build
```
Or, for the minified version:
```sh
npm run build-minified
```
Find the bundles in the _dist_ folder.
The non-minified version is 88kb in size and the minified one is 79kb. The bulk of the size comes from the EFF word list itself, which is 77kb.
## Like this? Fund us!
[Small Technology Foundation](https://small-tech.org) is a tiny, independent not-for-profit.
We exist in part thanks to patronage by people like you. If you share [our vision](https://small-tech.org/about/#small-technology) and want to support our work, please [become a patron or donate to us](https://small-tech.org/fund-us) today and help us continue to exist.
## Copyright
- ⓒ 2021 [Aral Balkan](https://ar.al), [Small Technology Foundation](https://small-tech.org)
- ⓒ 2016-2021, [Emil Bay](https://github.com/emilbayes)
- See [LICENSE](./LICENSE) for complete list of notices.
## License
ISC