refactor: remove cipher old
parent
f95d30129b
commit
ab87074040
|
@ -1,7 +1,7 @@
|
|||
import { cacheCipher } from '@/settings/encryptionSetting'
|
||||
import type { EncryptionParams } from '@/utils/cipherOld'
|
||||
import { AesEncryption } from '@/utils/cipherOld'
|
||||
import { isNullOrUnDef } from '@/utils/is'
|
||||
import type { Encryption, EncryptionParams } from '@/utils/cipher'
|
||||
import { EncryptionFactory } from '@/utils/cipher'
|
||||
|
||||
export interface CreateStorageParams extends EncryptionParams {
|
||||
prefixKey: string
|
||||
|
@ -20,7 +20,10 @@ export function createStorage({
|
|||
if (hasEncrypt && [key.length, iv.length].some(item => item !== 16))
|
||||
throw new Error('When hasEncrypt is true, the key or iv must be 16 bits!')
|
||||
|
||||
const encryption = new AesEncryption({ key, iv })
|
||||
const persistEncryption: Encryption = EncryptionFactory.createAesEncryption({
|
||||
key: cacheCipher.key,
|
||||
iv: cacheCipher.iv,
|
||||
})
|
||||
|
||||
/**
|
||||
* Cache class
|
||||
|
@ -31,12 +34,12 @@ export function createStorage({
|
|||
const WebStorage = class WebStorage {
|
||||
private storage: Storage
|
||||
private prefixKey?: string
|
||||
private encryption: AesEncryption
|
||||
private encryption: Encryption
|
||||
private hasEncrypt: boolean
|
||||
constructor() {
|
||||
this.storage = storage
|
||||
this.prefixKey = prefixKey
|
||||
this.encryption = encryption
|
||||
this.encryption = persistEncryption
|
||||
this.hasEncrypt = hasEncrypt
|
||||
}
|
||||
|
||||
|
@ -57,7 +60,7 @@ export function createStorage({
|
|||
time: Date.now(),
|
||||
expire: !isNullOrUnDef(expire) ? new Date().getTime() + expire * 1000 : null,
|
||||
})
|
||||
const stringifyValue = this.hasEncrypt ? this.encryption.encryptByAES(stringData) : stringData
|
||||
const stringifyValue = this.hasEncrypt ? this.encryption.encrypt(stringData) : stringData
|
||||
this.storage.setItem(this.getKey(key), stringifyValue)
|
||||
}
|
||||
|
||||
|
@ -73,7 +76,7 @@ export function createStorage({
|
|||
return def
|
||||
|
||||
try {
|
||||
const decVal = this.hasEncrypt ? this.encryption.decryptByAES(val) : val
|
||||
const decVal = this.hasEncrypt ? this.encryption.decrypt(val) : val
|
||||
const data = JSON.parse(decVal)
|
||||
const { value, expire } = data
|
||||
if (isNullOrUnDef(expire) || expire >= new Date().getTime())
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
import { decrypt, encrypt } from 'crypto-js/aes'
|
||||
import UTF8, { parse } from 'crypto-js/enc-utf8'
|
||||
import pkcs7 from 'crypto-js/pad-pkcs7'
|
||||
import ECB from 'crypto-js/mode-ecb'
|
||||
import md5 from 'crypto-js/md5'
|
||||
import Base64 from 'crypto-js/enc-base64'
|
||||
|
||||
export interface EncryptionParams {
|
||||
key: string
|
||||
iv: string
|
||||
}
|
||||
|
||||
export class AesEncryption {
|
||||
private key
|
||||
private iv
|
||||
|
||||
constructor(opt: Partial<EncryptionParams> = {}) {
|
||||
const { key, iv } = opt
|
||||
if (key)
|
||||
this.key = parse(key)
|
||||
|
||||
if (iv)
|
||||
this.iv = parse(iv)
|
||||
}
|
||||
|
||||
get getOptions() {
|
||||
return {
|
||||
mode: ECB,
|
||||
padding: pkcs7,
|
||||
iv: this.iv,
|
||||
}
|
||||
}
|
||||
|
||||
encryptByAES(cipherText: string) {
|
||||
return encrypt(cipherText, this.key, this.getOptions).toString()
|
||||
}
|
||||
|
||||
decryptByAES(cipherText: string) {
|
||||
return decrypt(cipherText, this.key, this.getOptions).toString(UTF8)
|
||||
}
|
||||
}
|
||||
|
||||
export function encryptByBase64(cipherText: string) {
|
||||
return UTF8.parse(cipherText).toString(Base64)
|
||||
}
|
||||
|
||||
export function decodeByBase64(cipherText: string) {
|
||||
return Base64.parse(cipherText).toString(UTF8)
|
||||
}
|
||||
|
||||
export function encryptByMd5(password: string) {
|
||||
return md5(password).toString()
|
||||
}
|
Loading…
Reference in New Issue