An ECMAScript module to get the non-cryptographic hash of the data with algorithm Blake.
- Support custom output length.
- Support variants of 2B and 2S.
| Runtime \ Source | GitHub Raw | JSR | NPM |
|---|---|---|---|
| Bun >= v1.1.0 | ❌ | ✔️ | ✔️ |
| Deno >= v2.1.0 | ✔️ | ✔️ | ✔️ |
| NodeJS >= v20.9.0 | ❌ | ✔️ | ✔️ |
This does not request any runtime permission.
- GitHub Raw
https://raw.githubusercontent.com/hugoalh/blake-es/{Tag}/mod.ts - JSR
jsr:@hugoalh/blake[@{Tag}] - NPM
npm:@hugoalh/blake[@{Tag}]
Note
- It is recommended to include tag for immutability.
- These are not part of the public APIs hence should not be used:
- Benchmark/Test file (e.g.:
example.bench.ts,example.test.ts). - Entrypoint name or path include any underscore prefix (e.g.:
_example.ts,foo/_example.ts). - Identifier/Namespace/Symbol include any underscore prefix (e.g.:
_example,Foo._example).
- Benchmark/Test file (e.g.:
| Name | Path | Description |
|---|---|---|
. |
./mod.ts |
Default. |
./2b |
./2b.ts |
Variant of 2B. |
./2s |
./2s.ts |
Variant of 2S. |
-
class Blake2B { constructor(input?: Blake2BOptions); get freezed(): boolean; get length(): number; freeze(): this; hash(): Uint8Array; hashHex(): string; update(data: Blake2AcceptDataType): this; updateFromStream(stream: ReadableStream<Blake2AcceptDataType>): Promise<this>; }
-
class Blake2S { constructor(input?: Blake2Options); get freezed(): boolean; get length(): number; freeze(): this; hash(): Uint8Array; hashHex(): string; update(data: Blake2AcceptDataType): this; updateFromStream(stream: ReadableStream<Blake2AcceptDataType>): Promise<this>; }
-
interface Blake2Options { data?: Blake2AcceptDataType; key?: Uint8Array; length?: number; }
-
interface Blake2BOptions extends Blake2Options { personal?: string | Uint8Array; salt?: string | Uint8Array; }
-
type Blake2AcceptDataType = | string | Uint8Array;
Note
- For the full or prettier documentation, can visit via:
-
new Blake2B("The quick brown fox jumps over the lazy dog").hashHex(); //=> "A8ADD4BDDDFD93E4877D2746E62817B116364A1FA7BC148D95090BC7333B3673F82401CF7AA2E4CB1ECD90296E3F14CB5413F8ED77BE73045B13914CDCD6A918"