crypto.js 472 Bytes
Newer Older
abergavenny's avatar
abergavenny committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import { randomBytes, scryptSync } from 'crypto'

export const encryptString = (value, salt) => {
  return scryptSync(value, salt, 32).toString('hex')
}

export const hashString = (value) => {
  const salt = randomBytes(16).toString('hex')
  return encryptString(value, salt) + salt
}

export const matchEncryptedString = (value, hash) => {
  const storedHash = hash.slice(0, 64)
  const testHash = encryptString(value, hash.slice(64))

  return storedHash === testHash
}