<%@ page language="java" contentType="text/javascript; charset=utf-8"
import="com.homolo.usersystem.security.csrf.CSRFTokenService"
%><%@include file="include/page.jspf"%>
var $publicKey = '<%=StringUtils.replace(helper.getBean("us.plain.publickey", String.class), "\n", "\\n\\\n") %>';
var encryptPassChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz*&-%/!?*+=()";
var rsaEncrypt = new JSEncrypt();
rsaEncrypt.setPublicKey($publicKey);
var keyEncrypt = function(data) {
var passPhrase = generateEncryptPassword(32);
var iv = CryptoJS.lib.WordArray.random(128/8).toString(CryptoJS.enc.Hex);
var salt = CryptoJS.lib.WordArray.random(128/8).toString(CryptoJS.enc.Hex);
var key = CryptoJS.PBKDF2(
passPhrase,
CryptoJS.enc.Hex.parse(salt),
{ keySize: 128/32, iterations: 1000 });
var aesEncrypted = CryptoJS.AES.encrypt(data, key, { iv: CryptoJS.enc.Hex.parse(iv) });
var aesKey = passPhrase + ":::" + salt + ":::" + aesEncrypted.iv;
var encryptedMessage = aesEncrypted.ciphertext.toString(CryptoJS.enc.Base64);
var encryptedKey = rsaEncrypt.encrypt(aesKey);
var encrypted = encryptedKey + ":::" + encryptedMessage;
return encrypted;
};
var generateEncryptPassword = function (length) {
var randomstring = '';
for (var i = 0; i < length; i++) {
var rnum = Math.floor(Math.random() * encryptPassChars.length);
randomstring += encryptPassChars.substring(rnum, rnum + 1);
}
return randomstring;
};