deno.land / x / deno@v1.28.2 / cli / bench / testdata / npm / hono / dist / utils / crypto.js

نووسراو ببینە
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
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.createHash = exports.md5 = exports.sha1 = exports.sha256 = void 0;const sha256 = async (data) => { const algorithm = { name: 'SHA-256', alias: 'sha256' }; const hash = await (0, exports.createHash)(data, algorithm); return hash;};exports.sha256 = sha256;const sha1 = async (data) => { const algorithm = { name: 'SHA-1', alias: 'sha1' }; const hash = await (0, exports.createHash)(data, algorithm); return hash;};exports.sha1 = sha1;const md5 = async (data) => { const algorithm = { name: 'MD5', alias: 'md5' }; const hash = await (0, exports.createHash)(data, algorithm); return hash;};exports.md5 = md5;const createHash = async (data, algorithm) => { let sourceBuffer; if (data instanceof ReadableStream) { let body = ''; const reader = data.getReader(); await reader?.read().then(async (chuck) => { const value = await (0, exports.createHash)(chuck.value || '', algorithm); body += value; }); return body; } if (ArrayBuffer.isView(data) || data instanceof ArrayBuffer) { sourceBuffer = data; } else { if (typeof data === 'object') { data = JSON.stringify(data); } sourceBuffer = new TextEncoder().encode(String(data)); } if (crypto && crypto.subtle) { const buffer = await crypto.subtle.digest({ name: algorithm.name, }, sourceBuffer); const hash = Array.prototype.map .call(new Uint8Array(buffer), (x) => ('00' + x.toString(16)).slice(-2)) .join(''); return hash; } return null;};exports.createHash = createHash;
deno

Version Info

Tagged at
2 years ago