cyber-web-ui
Version:
spring-cyber前端ui框架
61 lines (57 loc) • 1.82 kB
JavaScript
import CryptoJS from "crypto-js";
/**
* @function encryptToBase64 base64加密方法
* @param {String} str 明文字符串
* @returns {String}
*/
export var encryptToBase64 = function encryptToBase64(str) {
return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(str));
};
/**
* @function base64Decrypt base64解密方法
* @param {String} str 加密字符串
* @returns {String}
*/
export function base64Decrypt(str) {
return CryptoJS.enc.Base64.parse(str).toString(CryptoJS.enc.Utf8);
}
/**
* @function encryption 密码加密
* @param {{ data: Object, param: String[], key: String }} params data:表单数据 param:要加密的key key:加密key
* @returns {Object}
*/
export function encryption(params) {
var data = params.data,
param = params.param,
key = params.key;
var result = JSON.parse(JSON.stringify(data));
key = CryptoJS.enc.Latin1.parse(key);
param.forEach(function (ele) {
var data = result[ele];
// 加密
var encrypted = CryptoJS.AES.encrypt(data, key, {
iv: key,
mode: CryptoJS.mode.CFB,
padding: CryptoJS.pad.NoPadding
});
result[ele] = encrypted.toString();
});
return result;
}
/**
* @function generateRandomCode 生成随机码
* @description 随机生成包含小写字母和数字的随机码
* @param {Number} number 生成随机码的个数,默认为 10
* @returns {String}
*/
export function generateRandomCode() {
var number = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
var chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
var charCount = chars.length;
var randomString1 = '';
for (var i = 0; i < number; i++) {
var randomIndex = Math.floor(Math.random() * charCount);
randomString1 += chars[randomIndex];
}
return randomString1;
}