import crypto from "crypto"; let SHA256_cache = {} function _SHA256(str) { return crypto .createHash("sha256") .update(str) .digest("base64"); } /** * hashes with the secure hashing algorithm 256 * @param {string} str string to hash * @param {any} salt salt to apply to string * @param {number} num amount of times to hash, defaults to 1 * @returns {string} base64 digested hash */ function SHA256(str, salt, num) { if (!num && num !== 0) num = 1; if (!str) return; let identifier = _SHA256(str+salt+num.toString()) if(SHA256_cache[identifier] != undefined) { return SHA256_cache[identifier]; } let ret = str; for (let i = 0; i < num; i++) { ret = _SHA256(ret + salt) } SHA256_cache[identifier] = ret; setTimeout(()=>{ SHA256_cache[identifier] = undefined },10000) //cache for 10s return ret; } export { SHA256 }; export default { SHA256: SHA256 };