2024-03-19 22:48:12 +00:00
|
|
|
import { md5 as baseMd5 } from 'js-md5'
|
|
|
|
|
2023-04-17 19:45:43 +00:00
|
|
|
export const uuid = () => {
|
|
|
|
if (typeof window === 'undefined') {
|
|
|
|
// @ts-ignore
|
|
|
|
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
|
2024-10-13 17:37:01 +00:00
|
|
|
(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16))
|
2023-04-17 19:45:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return typeof window.crypto?.randomUUID === 'function'
|
|
|
|
? window.crypto.randomUUID()
|
2024-10-13 17:37:01 +00:00
|
|
|
: URL.createObjectURL(new Blob([])).split(/[:/]/g).pop()
|
2023-04-17 19:45:43 +00:00
|
|
|
}
|
2024-02-25 19:32:53 +00:00
|
|
|
|
2024-03-19 22:48:12 +00:00
|
|
|
export const md5 = (str: string) => baseMd5(str)
|
|
|
|
|
2024-02-25 19:32:53 +00:00
|
|
|
export const base64Encode = (str: string) => {
|
|
|
|
return btoa(String.fromCodePoint(...(new TextEncoder().encode(str))))
|
|
|
|
}
|
|
|
|
|
|
|
|
export const base64Decode = (str: string) => {
|
|
|
|
return new TextDecoder().decode(Uint8Array.from(atob(str), c => c.codePointAt(0)!))
|
|
|
|
}
|