import 'crypto-js/enc-utf8'
import 'crypto-js/tripledes'
import 'crypto-js/sha1'
import * as CryptoJS from 'crypto-js/core'
export function encryptByDESModeCBC (message: string, key: string): string {
const keyHex = CryptoJS.enc.Utf8.parse(key)
const ivHex = CryptoJS.enc.Utf8.parse(key)
const encrypted = CryptoJS.DES.encrypt(message, keyHex, {
iv: ivHex,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext)
}
export function encryptByMD5 (message: string): string {
return CryptoJS.MD5(message).toString()
}
export function encryptBySha1 (message: string): string {
return CryptoJS.SHA1(message).toString()
}
export function decryptByDESModeCBC (cipherText: string, key: string): string {
const keyHex = CryptoJS.enc.Utf8.parse(key)
const ivHex = CryptoJS.enc.Utf8.parse(key)
const decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(cipherText)
}, keyHex, {
iv: ivHex,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
return decrypted.toString(CryptoJS.enc.Utf8)
}
打包体积太大
- 原因: 将crypto-js的node代码也打包进去了, 大越多了400k, 超级恶心
- 解决方法: 将crypto-js的node代码也打包进去了降级到^3.1.9-1,