CryptoJS之JS前端加密,后端JAVA解密!

1,下载js包(全部下载,然后把components与rollups全部放在js工程目录中)
下载:cryptojs 密码:zt8x

2,在jsp或html中引入js
<script type="text/javascript" src="static/login/js/jquery-1.5.1.min.js"></script>
<script src="static/ace/js/rollups/aes.js"></script>

3,js加密方法:
//加密function
function Encrypt(word){
/*var key = CryptoJS.enc.Utf8.parse("0102030405060708"); //加密密钥
var iv = CryptoJS.enc.Utf8.parse('0102030405060708'); //加密向量*/
var srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: key,mode:CryptoJS.mode.CBC});
return encrypted.toString();
}

应用:
Encrypt(password);


4,JAVA解密方法:

import it.sauronsoftware.base64.Base64;

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

public class EncryptUtil {
public static String digest(String data) {
String digest=””;
try {
java.security.MessageDigest alg=java.security.MessageDigest.getInstance(“MD5″);
alg.update(data.getBytes());
byte[] digesta=alg.digest();
digest=byte2hex(digesta);
return digest;
} catch (Exception ex) {
return (null);
}
}
public static String byte2hex(byte[] b) //二行制转字符串
{
String hs=””;
String stmp=””;
for (int n=0;n<b.length;n++)
{
stmp=(java.lang.Integer.toHexString(b[n] & 0XFF));
if (stmp.length()==1) hs=hs+”0″+stmp;
else hs=hs+stmp;
if (n<b.length-1) hs=hs+””;
}
return hs.toUpperCase();
}
public static String Decrypt(String sSrc, String sKey) throws Exception {
try {
// 判断Key是否正确
if (sKey == null) {
System.out.print(“Key为空null”);
return null;
}
// 判断Key是否为16位
if (sKey.length() != 16) {
System.out.print(“Key长度不是16位”);
return null;
}
byte[] raw = sKey.getBytes(“ASCII”);
SecretKeySpec skeySpec = new SecretKeySpec(raw, “AES”);
Cipher cipher = Cipher.getInstance(“AES/CBC/PKCS5Padding”);
IvParameterSpec iv = new IvParameterSpec(sKey.getBytes());
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
byte[] encrypted1 = Base64.decode(sSrc.getBytes());
try {
byte[] original = cipher.doFinal(encrypted1);
String originalString = new String(original);
return originalString;
} catch (Exception e) {
System.out.println(e.toString());
return null;
}
} catch (Exception ex) {
System.out.println(ex.toString());
return null;
}
}
}
应用:
EncryptUtil my=new EncryptUtil();
String password = my.Decrypt(password,”0102030405060708″)

未经允许不得转载:高腾蛟 » CryptoJS之JS前端加密,后端JAVA解密!

赞 (0)
分享到:更多 ()

评论 1

评论前必须登录!

登陆 注册
  1. gaotengjiao评论