randomString: generate a securely random string.
Also, support lengths > 12 in case that's ever needed. This is used in at least one case (creating device tokens for users) where it seems important that the output is unpredictable.
This commit is contained in:
parent
06cdf2a84a
commit
8828b25a8f
|
@ -1,7 +1,11 @@
|
|||
export const randomString = (length = 12) =>
|
||||
Math.random()
|
||||
.toString(16)
|
||||
.substring(2, length + 2)
|
||||
// Returns a cryptographically random hexadecimal string of length `length`
|
||||
// (thus containing 4*`length` bits of entropy).
|
||||
export const randomString = (length = 12) => {
|
||||
const bytes = new Uint8Array(Math.ceil(length / 2))
|
||||
crypto.getRandomValues(bytes)
|
||||
const hex = bytes.reduce((s, b) => s + ('0' + b.toString(16)).slice(-2), '')
|
||||
return hex.substring(0, length)
|
||||
}
|
||||
|
||||
export function genHash(str: string) {
|
||||
// xmur3
|
||||
|
|
Loading…
Reference in New Issue
Block a user