这是java后台的加密
public static String aesEncrypt(String content, String encryptKey) throws Exception {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
SecureRandom random=SecureRandom.getInstance("SHA1PRNG");
random.setSeed(encryptKey.getBytes());
kgen.init(128, random);
SecretKey secretKey = kgen.generateKey();
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptDataByte = cipher.doFinal(content.getBytes("utf-8"));
//将二进制转换成16进制
String hexStr = parseByte2HexStr(encryptDataByte);
//转换为base64
String encodeStr = Base64.encodeBase64String(hexStr.getBytes());
return encodeStr;
}
java后台将二进制转换成16进制
/**
* 将二进制转换成16进制
* @method parseByte2HexStr
* @param buf
* @return
* @throws
* @since v1.0
*/
public static String parseByte2HexStr(byte buf[]){
StringBuffer sb = new StringBuffer();
for(int i = 0; i < buf.length; i++){
String hex = Integer.toHexString(buf[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
sb.append(hex.toUpperCase());
}
return sb.toString();
}
这是我用JS写的加密 用的CryptoJS
encrypt(word, keyStr) { // 加密
var key = CryptoJS.enc.Utf8.parse(keyStr);
var srcs = CryptoJS.enc.Utf8.parse(word)
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
})
//console.log("encrypted===" + encrypted.toString())
var base64Str = CryptoJS.enc.Base64.stringify(encrypted.toString());
//转16进制
var dataString = strToHexCharCode(encrypted.toString());
// //base64加密
dataString = window.btoa(dataString.toString());
console.log(dataString);
return dataString;
},
//转16进制
function strToHexCharCode(str) {
if (str === "")
return "";
var hexCharCode = [];
//hexCharCode.push("0x");
for (var i = 0; i < str.length; i++) {
hexCharCode.push((str.charCodeAt(i)).toString(16));
}
return hexCharCode.join("");
}