Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
ohash
Advanced tools
Changelog
v1.1.3
isNativeFunction
check (#30)objectHash()
(#43)Readme
Super fast hashing library written in Vanilla JS
Install package:
# npm
npm install ohash
# yarn
yarn add ohash
# pnpm
pnpm install ohash
Import:
// ESM
import { hash, objectHash, murmurHash, sha256 } from "ohash";
// CommonJS
const { hash, objectHash, murmurHash, sha256 } = require("ohash");
hash(object, options?)
Converts object value into a string hash using objectHash
and then applies sha256
with Base64 encoding (trimmed by length of 10).
Usage:
import { hash } from "ohash";
// "dZbtA7f0lK"
console.log(hash({ foo: "bar" }));
objectHash(object, options?)
Converts a nest object value into a stable and safe string for hashing.
Usage:
import { objectHash } from "ohash";
// "object:1:string:3:foo:string:3:bar,"
console.log(objectHash({ foo: "bar" }));
isEqual(obj1, obj2, options?)
Compare two objects using reference equality and stable object hashing.
Usage:
import { isEqual } from "ohash";
// true
console.log(isEqual({ a: 1, b: 2 }, { b: 2, a: 1 }));
diff(obj1, obj2, options?)
Compare two objects with nested hashing. Returns an array of changes.
Returned value is an array of diff entries with $key
, $hash
, $value
and $props
. When logging, a string version of changelog is displayed.
Usage:
import { diff } from "ohash";
const createObject = () => ({
foo: "bar",
nested: {
y: 123,
bar: {
baz: "123",
},
},
});
const obj1 = createObject();
const obj2 = createObject();
obj2.nested.x = 123;
delete obj2.nested.y;
obj2.nested.bar.baz = 123;
const diff = diff(obj1, obj2);
// [-] Removed nested.y
// [~] Changed nested.bar.baz from "123" to 123
// [+] Added nested.x
console.log(diff(obj1, obj2));
murmurHash(str)
Converts input string (of any length) into a 32-bit positive integer using MurmurHash3.
Usage:
import { murmurHash } from "ohash";
// "2708020327"
console.log(murmurHash("Hello World"));
sha256
Create a secure SHA 256 digest from input string.
import { sha256 } from "ohash";
// "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e"
console.log(sha256("Hello World"));
sha256base64
Create a secure SHA 256 digest in Base64 encoding from input string.
import { sha256base64 } from "ohash";
// "pZGm1Av0IEBKARczz7exkNYsZb8LzaMrV7J32a2fFG4"
console.log(sha256base64("Hello World"));
corepack enable
(use npm i -g corepack
for Node.js < 16.10)pnpm install
pnpm dev
Made with 💛
Published under MIT License.
Based on puleos/object-hash by Scott Puleo, and implementations from perezd/node-murmurhash and garycourt/murmurhash-js by Gary Court and Austin Appleby and brix/crypto-js.
FAQs
Super fast hashing library based on murmurhash3 written in Vanilla JS
The npm package ohash receives a total of 2,425,002 weekly downloads. As such, ohash popularity was classified as popular.
We found that ohash demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.