118 lines
2.7 KiB
JavaScript
118 lines
2.7 KiB
JavaScript
globalThis.instantiateArgon2WasmInstance = async function () {
|
|
await argon2.loadModule();
|
|
};
|
|
|
|
let randomStrings = [
|
|
'iqqdAsbeeb', 'B3tVB5h2AI',
|
|
'Z7ihQxGE93', 'ou2jsFcbur',
|
|
'0pjTjkrnsM', 'B8VRY9tCVY',
|
|
'6Kg3AmWnVc', '3jcEFqDAPT',
|
|
'JeehIKnWiO', '2mSSPZacYX',
|
|
'CGRhFvbj3M', 'aQPgDC7e5j',
|
|
'bSUE8duQ4u', 'Xp3FEiAEXi',
|
|
'tusLv0aHkH', '4GUC7Hx4yk',
|
|
'yJIS8ioQLH', 'OmS9931mEz',
|
|
'ekSwTfKgvC', '3kj2W1fy9F',
|
|
'1oXMME4xPV', 'UDDI3kCDqy',
|
|
'xglo5DvJm3', '2SWNQygbHm',
|
|
'Msfw59Go9X', 'X9vvXuoDM0',
|
|
'XUvEPoHvXC', 'pffHsNtWBg',
|
|
'EQPLyqD9U5', 'yBpDjiKHHj',
|
|
'2gStCWSzhD', 'k74wcxwve7',
|
|
'TU2BIQTMqE', 'bVaCWRL4l3',
|
|
'BMTlPabHpu', 'KXv8hmWApM',
|
|
'lpvttDdRli', 'M4WB62T2qy',
|
|
'FbSoElUBC0', 'QpsrcOC4C1'
|
|
];
|
|
|
|
async function hashAndVerify(params) {
|
|
let hash = await argon2.hash(params);
|
|
await argon2.verify({
|
|
pass: params.pass,
|
|
encoded: hash.encoded,
|
|
type: hash.type,
|
|
ad: params.ad,
|
|
secret: params.secret
|
|
}).catch(e => { throw new Error(e.message) });
|
|
}
|
|
|
|
globalThis.testArgon2HashAndVerify = async function () {
|
|
for (let i = 0; i < randomStrings.length; i += 2) {
|
|
await hashAndVerify({
|
|
pass: randomStrings[i],
|
|
salt: randomStrings[i + 1],
|
|
});
|
|
}
|
|
|
|
await hashAndVerify({
|
|
pass: 'p@ssw0rd',
|
|
salt: 'somesalt',
|
|
});
|
|
|
|
await hashAndVerify({
|
|
pass: 'p@ssw0rd',
|
|
salt: 'somesalt',
|
|
type: argon2.ArgonType.Argon2d,
|
|
});
|
|
|
|
await hashAndVerify({
|
|
pass: 'p@ssw0rd',
|
|
salt: 'somesalt',
|
|
type: argon2.ArgonType.Argon2i,
|
|
});
|
|
|
|
await hashAndVerify({
|
|
pass: 'p@ssw0rd',
|
|
salt: 'somesalt',
|
|
type: argon2.ArgonType.Argon2id,
|
|
});
|
|
|
|
await hashAndVerify({
|
|
pass: 'p@ssw0rd',
|
|
salt: 'somesalt',
|
|
time: 10,
|
|
});
|
|
|
|
await hashAndVerify({
|
|
pass: 'p@ssw0rd',
|
|
salt: 'somesalt',
|
|
mem: 2048,
|
|
});
|
|
|
|
await hashAndVerify({
|
|
pass: 'p@ssw0rd',
|
|
salt: 'somesalt',
|
|
hashLen: 32,
|
|
});
|
|
|
|
await hashAndVerify({
|
|
pass: 'p@ssw0rd',
|
|
salt: 'somesalt',
|
|
parallelism: 4,
|
|
});
|
|
|
|
await hashAndVerify({
|
|
pass: '汉字漢字',
|
|
salt: 'asdfasdfasdfasdf',
|
|
type: argon2.ArgonType.Argon2id,
|
|
hashLen: 32,
|
|
});
|
|
|
|
await hashAndVerify({
|
|
pass: 'p@ssw0rd',
|
|
salt: 'somesalt',
|
|
ad: new Uint8Array([1, 2, 3]),
|
|
});
|
|
|
|
await hashAndVerify({
|
|
pass: 'p@ssw0rd',
|
|
salt: 'somesalt',
|
|
secret: new Uint8Array([1, 2, 3]),
|
|
});
|
|
|
|
await hashAndVerify({
|
|
pass: 'p@ssw0rd',
|
|
salt: 'somesalt',
|
|
hashLen: 100000,
|
|
});
|
|
};
|