Files
illusory-mapp/packages/logic/core/hash.utils.ts
2026-02-28 14:50:04 +02:00

32 lines
655 B
TypeScript

import { argon2id, hash as argonHash, verify as argonVerify } from "argon2";
export async function hashString(target: string): Promise<string> {
const salt = Buffer.from(crypto.getRandomValues(new Uint8Array(16))).toString(
"hex",
);
const hash = await argonHash(target, {
type: argon2id,
salt: Buffer.from(salt, "hex"),
hashLength: 32,
timeCost: 3,
memoryCost: 65536,
parallelism: 1,
});
return hash;
}
export async function verifyHash({
hash,
target,
}: {
hash: string;
target: string;
}): Promise<boolean> {
try {
const isValid = await argonVerify(hash, `${target}`);
return isValid;
} catch (err) {
return false;
}
}