BCrypt
This is a port from jBCrypt to TypeScript for use in Deno.
It has zero third-party dependencies.
Running in sync requires no permissions. Running in async functionality requires âallow-net
Import
If you donât want to specify a specific version and are happy to work with breaking changes, you can import this module like so:
import * as bcrypt from "https://deno.land/x/bcrypt/mod.ts";
To ensure that youâve got a specific version, itâs recommend to import this module specifying a specific release like so:
import * as bcrypt from "https://deno.land/x/bcrypt@v0.3.0/mod.ts";
Usage
Async
The Async implementation requires WebWorkers which require âallow-net to import Deno standard modules from inside the Worker.
const hash = await bcrypt.hash("test");
To check a password:
const result = await bcrypt.compare("test", hash);
To hash a password with a manually generated salt:
const salt = await bcrypt.genSalt(8);
const hash = await bcrypt.hash("test", salt);
Sync/Blocking
It is not recommended to use this unless youâre running a quick script since the BCrypt algorithm is computationally quite expensive. For example, if youâre running a server and make multiple calls to it, other requests will be blocked. Using the Async methods are recommended.
To hash a password (with auto-generated salt):
const hash = bcrypt.hashSync("test");
To check a password:
const result = bcrypt.compareSync("test", hash);
To hash a password with a manually generated salt:
const salt = bcrypt.genSaltSync(8);
const hash = bcrypt.hashSync("test", salt);
Older versions of Deno and/or BCrypt
Older versions of Deno will require an older version of this library
(specifically < 0.3.0) because of the introduction of TextEncoder
. However,
older version of this library require the --unstable
flag when running.
Warnings
BCrypt v0.3.0 and below should NOT be used with Deno 1.23.0 or later since thereâs been a breaking change in how Deno interprets the code and completely bypasses the cipher. Ensure that if youâre running Deno 1.23.0 or later that youâre using the latest version of BCrypt.
Issues
For any bug reports or feature requests, please create an issue on GitHub.