Browse Source

refactor: remove cipher old

main
xingyu 2 years ago
parent
commit
ab87074040
  1. 17
      src/utils/cache/storageCache.ts
  2. 53
      src/utils/cipherOld.ts

17
src/utils/cache/storageCache.ts vendored

@ -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())

53
src/utils/cipherOld.ts

@ -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()
}