You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
doushio/tripcode.js

47 lines
1.0 KiB

const hash = require('kana-hash');
function Tripcode(algo, salt)
{
this.algo = algo || hash.Kana.ALGO_DEFAULT;
this.salt = salt ? new hash.Kana(salt) : hash.Salt.Default;
}
Tripcode.Algorithm = {
Default: hash.Kana.ALGO_DEFAULT,
Crc32: hash.Kana.ALGO_CRC32,
Crc64: hash.Kana.ALGO_CRC64,
Sha256: hash.Kana.ALGO_SHA256,
Sha256T: hash.Kana.ALGO_SHA256_TRUNCATED,
};
Tripcode.make = (algo, salt) => {
return new Tripcode(algo,salt);
};
Object.freeze(Tripcode.Algorithm);
const TC = Tripcode.prototype;
TC.hash = function(a, b, c) {
console.log("what are these?:");
if (a) {
// Insecure
return "!" +new hash.Kana(this.algo, hash.Salt.Default).once(a);
} else if (b) {
// Secure
return "!!" +new hash.Kana(this.algo, this.salt).once(b);
}
};
TC.setSalt = function(salt) {
if (salt)
this.salt = new hash.Salt(salt);
else if(salt === true)
this.salt = hash.Salt.Default;
else if (salt === false)
this.salt = hash.Salt.None;
return this.salt;
};
module.exports = Tripcode;