summaryrefslogtreecommitdiff
path: root/std/hash/README.md
blob: 5e511a97cfe5316e165da3996034847afb9f70f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# std/hash

## MD5

**Uses:**

```ts
import { Md5 } from "https://deno.land/std/hash/md5.ts";

const md5 = new Md5();
const md5Instance = md5.update("中文"); // return instance of `Md5`
console.log(md5Instance instanceof Md5); // true
console.log(md5Instance.toString()); // a7bac2239fcdcb3a067903d8077c4a07
```

Calling `update` method, It will update internal state based on the input
provided. Once you call `md5Instance.toString()`, it will return the
`hash string`. You can provide format as `hash` or `base64`. The default format
is `hex`.

**sample:**

```ts
console.log(md5Instance.toString("base64")); // MNgWOD+FHGO3Fff/HDCY2w==
```

## SHA1

**Uses:**

Creating `sha1` hash is simple. You can use `Sha1` class instance and update the
digest. Calling `hex` method will return the sha1 in hex value. You can also use
`toString` method.

```ts
import { Sha1 } from "https://deno.land/std/hash/sha1.ts";

const sha1 = new Sha1().update("中文");
console.log(sha1.hex()); // 7be2d2d20c106eee0836c9bc2b939890a78e8fb3
console.log(sha1.toString()); // same as above
```

## Sha256 and HmacSha256

**Uses:**

Creating `Sha256` hash is simple. You can use `Sha256` class instance and update
the digest. Calling the `hex` method will return the sha256 in `hex` value. You
can also use the `toString` method.

**Note:** For `HmacSha256`, you can pass the secret `key` while creating an
instance of the object.

```ts
import { Sha256, HmacSha256 } from "https://deno.land/std/hash/sha256.ts";

const sha256 = new Sha256().update("中文");
console.log(sha256.hex());
console.log(sha256.toString()); // Same as above

const key = "Hi There";
const hmac = new HmacSha256(key).update("中文");

console.log(hmac.hex());
console.log(hmac.toString()); // Same as above
```