https://github.com/browserify/evp_bytestokey
https://github.com/browserify/evp_bytestokey
crypto javascript openssl
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/browserify/evp_bytestokey
- Owner: browserify
- License: mit
- Created: 2015-09-27T14:13:51.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-12-21T09:59:49.000Z (about 1 year ago)
- Last Synced: 2025-03-31T13:39:56.815Z (11 months ago)
- Topics: crypto, javascript, openssl
- Language: JavaScript
- Size: 17.6 KB
- Stars: 19
- Watchers: 4
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# EVP\_BytesToKey
[](https://www.npmjs.org/package/evp_bytestokey)
[](https://travis-ci.org/crypto-browserify/EVP_BytesToKey)
[](https://david-dm.org/crypto-browserify/EVP_BytesToKey#info=dependencies)
[](https://github.com/feross/standard)
The insecure [key derivation algorithm from OpenSSL.][1]
**WARNING: DO NOT USE, except for compatibility reasons.**
MD5 is insecure.
Use at least `scrypt` or `pbkdf2-hmac-sha256` instead.
## API
`EVP_BytesToKey(password, salt, keyLen, ivLen)`
* `password` - `Buffer`, password used to derive the key data.
* `salt` - 8 byte `Buffer` or `null`, salt is used as a salt in the derivation.
* `keyBits` - `number`, key length in **bits**.
* `ivLen` - `number`, iv length in bytes.
*Returns*: `{ key: Buffer, iv: Buffer }`
## Examples
MD5 with `aes-256-cbc`:
```js
const crypto = require('crypto')
const EVP_BytesToKey = require('evp_bytestokey')
const result = EVP_BytesToKey(
'my-secret-password',
null,
256,
16
)
// =>
// { key: ,
// iv: }
const cipher = crypto.createCipheriv('aes-256-cbc', result.key, result.iv)
```
## LICENSE [MIT](LICENSE)
[1]: https://wiki.openssl.org/index.php/Manual:EVP_BytesToKey(3)
[2]: https://nodejs.org/api/crypto.html#crypto_class_hash