Files
bun.sh/examples/sha.js
Jarred Sumner 9388b3f825 Add a zig fmt action (#2277)
* Add a zig fmt action

* add failing file

* Setup prettier better

* Update prettier-fmt.yml

* Fail on error

* Update prettier-fmt.yml

* boop

* boop2

* tar.gz

* Update zig-fmt.yml

* Update zig-fmt.yml

* Update zig-fmt.yml

* Update zig-fmt.yml

* Update zig-fmt.yml

* boop

* Update prettier-fmt.yml

* tag

* newlines

* multiline

* fixup

* Update zig-fmt.yml

* update it

* fixup

* both

* w

* Update prettier-fmt.yml

* prettier all the things

* Update package.json

* zig fmt

*  

* bump

* .

* quotes

* fix prettier ignore

* once more

* Update prettier-fmt.yml

* Update fallback.ts

* consistentcy

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-03-02 19:02:10 -08:00

69 lines
1.9 KiB
JavaScript

import { SHA1, SHA256, SHA512, SHA384, SHA512_256, MD5, MD4, RIPEMD160, sha } from "bun";
const input = "Hello World";
const [first, second] = input.split(" ");
const log = (name, ...args) => console.log(`${name}:`.padStart("SHA512_256: ".length), ...args);
console.log("");
// This is SHA512-256:
// This function is shorthand for SHA512_256.hash(input)
log("Bun.sha()", sha(input, "base64"));
log("SHA1", SHA1.hash(input, "hex"));
log("SHA256", SHA256.hash(input, "hex"));
log("SHA384", SHA384.hash(input, "hex"));
log("SHA512", SHA512.hash(input, "hex"));
log("SHA512_256", SHA512_256.hash(input, "hex"));
log("RIPEMD160", RIPEMD160.hash(input, "hex"));
console.log("");
console.log("---- Chunked ----");
console.log("");
// You can also do updates in chunks:
// const hash = new Hash();
for (let Hash of [SHA1, SHA256, SHA384, SHA512, SHA512_256, RIPEMD160]) {
const hash = new Hash();
hash.update(first);
hash.update(" " + second);
log(Hash.name, hash.digest("hex"));
}
console.log("");
console.log("---- Base64 ----");
console.log("");
// base64 or hex
for (let Hash of [SHA1, SHA256, SHA384, SHA512, SHA512_256]) {
const hash = new Hash();
hash.update(first);
hash.update(" " + second);
log(Hash.name, hash.digest("base64"));
}
console.log("");
console.log("---- Uint8Array ----");
console.log("");
// Uint8Array by default
for (let Hash of [SHA1, SHA256, SHA384, SHA512, SHA512_256]) {
const hash = new Hash();
hash.update(first);
hash.update(" " + second);
log(Hash.name, hash.digest());
}
console.log("");
console.log("---- Uint8Array can be updated in-place ----");
console.log("");
var oneBuf = new Uint8Array(1024);
// Update Uint8Array in-place instead of allocating a new one
for (let Hash of [SHA1, SHA256, SHA384, SHA512, SHA512_256]) {
const hash = new Hash();
hash.update(first);
hash.update(" " + second);
log(Hash.name, hash.digest(oneBuf).subarray(0, Hash.byteLength));
}