UNPKG

@_lan/web-libs

Version:

<div align="center"> <img src="./public/favicon.svg" width="160" /> <h1>SoybeanAdmin AntDesign</h1> <span>中文 | <a href="./README.en_US.md">English</a></span> </div>

28 lines (23 loc) 639 B
import CryptoJS from 'crypto-js'; export class Crypto<T extends object> { /** Secret */ secret: string; constructor(secret: string) { this.secret = secret; } encrypt(data: T): string { const dataString = JSON.stringify(data); const encrypted = CryptoJS.AES.encrypt(dataString, this.secret); return encrypted.toString(); } decrypt(encrypted: string) { const decrypted = CryptoJS.AES.decrypt(encrypted, this.secret); const dataString = decrypted.toString(CryptoJS.enc.Utf8); try { return JSON.parse(dataString) as T; } catch { // avoid parse error return null; } } }