import CryptoJS from 'crypto-js'
// 实现加密方法
// export function encryp( data ){
//     if( typeof data === "object" ){
//         // 如果传入的data是json对象，先转义为json字符串
//         try {
//             data = JSON.stringify(data)
//         } catch (error) {
//         }
//     }
// 	let iv = CryptoJS.enc.Utf8.parse("lucasnetLUCASNET")
// 	let key = 'ZJya1314Hzya1314'
//      // 统一将传入的字符串转成UTF8编码
//     const dataHex = CryptoJS.enc.Utf8.parse( data ) // 需要加密的数据
//     const keyHex = CryptoJS.enc.Utf8.parse( key ) // 秘钥
//     const ivHex = CryptoJS.enc.Utf8.parse( iv ) // 偏移量
//     const encrypted = CryptoJS.AES.encrypt( dataHex , keyHex , {
//       iv: ivHex,
//       mode: CryptoJS.mode.CBC, // 加密模式
//       padding: CryptoJS.pad.Pkcs7
//     })
//     let encryptedVal = encrypted.ciphertext.toString()
//     return encryptedVal //  返回加密后的值
// }
export function encryp(word) {
	let iv = CryptoJS.enc.Utf8.parse("ZJya1314Hzya1314")
	let key = CryptoJS.enc.Utf8.parse("ZJya1314Hzya1314")
	let encrypted = "";
	if (typeof word == "string") {
		let srcs = CryptoJS.enc.Utf8.parse(word);
		encrypted = CryptoJS.AES.encrypt(srcs, key, {
			iv: iv,
			mode: CryptoJS.mode.CBC,
			padding: CryptoJS.pad.Pkcs7
		});
	} else if (typeof word == "object") {
		//对象格式的转成json字符串
		let data = JSON.stringify(word);
		let srcs = CryptoJS.enc.Utf8.parse(data);
		encrypted = CryptoJS.AES.encrypt(srcs, key, {
			iv: iv,
			mode: CryptoJS.mode.CBC,
			padding: CryptoJS.pad.Pkcs7
		});
	}
	return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
}
// 解密数据
export function decrypt( encryptedVal) {
	/*
	  传入的key和iv需要和加密时候传入的key一致
	*/
	// 统一将传入的字符串转成UTF8编码
	let encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedVal);
	let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
	const key = CryptoJS.enc.Utf8.parse("ZJya1314Hzya1314") // 秘钥
	const iv = CryptoJS.enc.Utf8.parse("ZJya1314Hzya1314") // 偏移量
	let decrypt = CryptoJS.AES.decrypt(srcs, key, {
		iv: iv,
		mode: CryptoJS.mode.CBC,
		padding: CryptoJS.pad.Pkcs7
	});
	// let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
	// return decryptedStr.toString();
	return CryptoJS.enc.Base64.stringify(decrypt);
}
// 生成随机字符串
export function randomString() {
	// 正好通过encryp方法生成随机字符串
	let key = "qwdkshjf9834jsdf";
	let iv = "dkfjdfgc987cs6sk";
	let word = "skdjhfgc9823kslf"
	return encryp(key, iv, word)
}
