This repository was archived by the owner on Feb 13, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.js
More file actions
42 lines (33 loc) · 1.49 KB
/
test.js
File metadata and controls
42 lines (33 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
const username = 'superAdmin27!'
const originalPassword = 'iAmNotHacker27!'
const assert = require('assert')
const HtpasswdValidator = require('.')
const credentials = [
'superAdmin27!:{SHA}m3eMTmxi2IBKIZgAnySjD/tg8W8=', // sha
'superAdmin27!:$2y$05$L/jPI05ltEKrwIjQThJ4keBFKH/aRDpxY9CaaVWYIZcPu0FXdRO6i', //bcrypt
'superAdmin27!:$apr1$GZ650zxv$99/Dg0Y6os0zquEMaYoJx1', // default
'superAdmin27!:5G1OI2SwmK4v6', // crypt
'superAdmin27!:iAmNotHacker27!' // plain
]
const validator = new HtpasswdValidator
for (const credential of credentials) {
assert(validator.verifyCredentials(username, originalPassword, credential))
assert(validator.verifyCredentials(username, 'bipop', credential) === false)
const split = credential.split(':')
assert(validator.verifyCredentials(username, originalPassword, split[0], split[1]))
assert(validator.verifyPassword(originalPassword, split[1]))
assert(validator.verifyUsername(username, split[0]))
}
const dictValidator = new HtpasswdValidator({
'bill': '5G1OI2SwmK4v7',
'superAdmin27!': '$apr1$GZ650zxv$99/Dg0Y6os0zquEMaYoJx1'
})
const listValidator = new HtpasswdValidator([
'bill:5G1OI2SwmK4v7',
'superAdmin27!:$apr1$GZ650zxv$99/Dg0Y6os0zquEMaYoJx1'
])
assert(dictValidator.verify(username, originalPassword))
assert(listValidator.verify(username, originalPassword))
assert(dictValidator.verify('charles', originalPassword) === false)
assert(dictValidator.verify(username, 'iAmHacker78!') === false)
console.log('Ok !')