import CryptoJS from "crypto-js"; const CRYPTOJSKEY = "zhouzhenrongqq12"; class PublicMethod { /** * 复制文本 * @param text 复制的内容 */ static copy(text) { const oInput = document.createElement("input"); oInput.value = text; document.body.appendChild(oInput); oInput.select(); // 选择对象 document.execCommand("Copy"); // 执行浏览器复制命令 oInput.className = "oInput"; oInput.style.display = "none"; } /*** * 加密 * @param plaintText 加密字符串 * @returns {string} */ static encrypt(plaintText) { const options = { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }; const key = CryptoJS.enc.Utf8.parse(CRYPTOJSKEY); const encryptedData = CryptoJS.AES.encrypt(plaintText, key, options); let encryptedBase64Str = encryptedData.toString().replace(/\//g, "_"); encryptedBase64Str = encryptedBase64Str.replace(/\+/g, "-"); return encryptedBase64Str; } /*** * 解密 * @param encryptedBase64Str 解密密字符串 * @returns {string} */ static decrypt(encryptedBase64Str) { if (!encryptedBase64Str) { return null; } const vals = encryptedBase64Str.replace(/\-/g, '+').replace(/_/g, '/'); const options = { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }; const key = CryptoJS.enc.Utf8.parse(CRYPTOJSKEY); const decryptedData = CryptoJS.AES.decrypt(vals, key, options); return CryptoJS.enc.Utf8.stringify(decryptedData); } /** * 深拷贝 * @param obj 深拷贝数据对象数组 * @returns {[]} */ static deepCopy(obj) { const result = Array.isArray(obj) ? [] : {}; for (const key in obj) { if (obj.hasOwnProperty(key)) { if (typeof obj[key] === 'object' && obj[key] !== null) { result[key] = this.deepCopy(obj[key]); } else { result[key] = obj[key]; } } } return result; } } export default PublicMethod;
常用拷贝信息,深拷贝数据,加密,解密
最新推荐文章于 2022-08-16 16:04:19 发布