You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Hydro/packages/hydrooj/test/lib.crypto.spec.ts

33 lines
1.1 KiB
TypeScript

import 'hydrooj/src/loader';
import { md5, sha1 } from 'hydrooj/src/lib/crypto';
import pwhash from 'hydrooj/src/lib/hash.hydro';
describe('crypto', () => {
const content1 = 'twd2akioi';
const content2 = '陈志鹏爱吃玻璃。';
test('MD5', () => {
const result1 = '57b6a9bd92c0502714ecedc4a5ebf24c';
const result2 = 'f598cb0738e7cd9efbbdf0ad7b6b42a7';
expect(md5(content1)).toStrictEqual(result1);
expect(md5(content2)).toStrictEqual(result2);
});
test('SHA1', () => {
const result1 = 'bade50df188c338fae183cf3bde34fafaf590bc5';
const result2 = '4d3fce39e3a163fe65263d8283ed3e98244fda42';
expect(sha1(content1)).toStrictEqual(result1);
expect(sha1(content2)).toStrictEqual(result2);
});
test('PWHASH', () => {
const password1 = 'password1';
const salt1 = '0326Bc23E6fac733K01g29fBBUSAj7O4';
const salt2 = String.random(32);
const hash1 = '70a2db6a53ecd75d8d4b19d8647a416b4e812c1a6635c4a1f5069a00382fdcb6';
expect(pwhash(password1, salt1)).toStrictEqual(hash1);
expect(pwhash(password1, salt2)).not.toEqual(hash1);
});
});