Files
continew-admin-ui/src/utils/encrypt.ts
2024-05-17 21:03:00 +08:00

40 lines
1.1 KiB
TypeScript

import Base64 from 'crypto-js/enc-base64'
import UTF8 from 'crypto-js/enc-utf8'
import { JSEncrypt } from 'jsencrypt'
import md5 from 'crypto-js/md5'
import CryptoJS from 'crypto-js'
export function encodeByBase64(txt: string) {
return UTF8.parse(txt).toString(Base64)
}
export function decodeByBase64(txt: string) {
return Base64.parse(txt).toString(UTF8)
}
export function encryptByMd5(txt: string) {
return md5(txt).toString()
}
const publicKey
= 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAM51dgYtMyF+tTQt80sfFOpSV27a7t9u'
+ 'aUVeFrdGiVxscuizE7H8SMntYqfn9lp8a5GH5P1/GGehVjUD2gF/4kcCAwEAAQ=='
export function encryptByRsa(txt: string) {
const encryptor = new JSEncrypt()
encryptor.setPublicKey(publicKey) // 设置公钥
return encryptor.encrypt(txt) // 对数据进行加密
}
const defaultKeyWork = 'XwKsGlMcdPMEhR1B'
export function encryptByAes(word, keyWord = defaultKeyWork) {
const key = CryptoJS.enc.Utf8.parse(keyWord)
const arcs = CryptoJS.enc.Utf8.parse(word)
const encrypted = CryptoJS.AES.encrypt(arcs, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
})
return encrypted.toString()
}