Javascript前端和JAVA后端对加密库的处理实例
2016-12-05 11:43
465 查看
前端加密
Javascript的加解密有开源的库,http://www.oschina.net/p/crypto-js/如下是具体的使用例子
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script src="aes_1.js"></script> //引入的js文件在该链接中:https://github.com/hellobajie/AES-of-JavaScript
</head>
<body>
<script type="text/javascript" >
//16位
var pwd="abcd2016_-=00_X_";
function Decrypt(word){
var encryptedHexStr = CryptoJS.enc.Hex.parse(word);
var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
console.log(srcs);
var decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv,mode:CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});
var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
return decryptedStr.toString();
}
function Encrypt(word){
var key = CryptoJS.enc.Utf8.parse(pwd);
var iv = CryptoJS.enc.Utf8.parse(pwd);
var srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv,mode:CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});
srcs = CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
return srcs ;
}
var mm = Encrypt('DEMO');
console.log(mm)
var jm = Decrypt(mm);
console.log(jm)
</script>
如果使用typescript可以在这找到其和ts集成的定义文件
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/36d40a63a05b5cb3413737fbdf7c9a2a26f211fd/crypto-js/crypto-js.d.ts
后端的java处理
import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
import java.util.Arrays;
String pwd = "abcd2016_-=00_X_";
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
byte[] raw = pwd.getBytes("utf-8");
SecretKey secretKey = new SecretKeySpec(raw, "AES");
System.out.println("密钥的长度为:" + secretKey.getEncoded().length);
Base64 b64 = new Base64();
encrypt = b64.decode(b64.encodeToString("DEMO"));
cipher.init(Cipher.DECRYPT_MODE, secretKey, new IvParameterSpec(raw));//使用解密模式初始化 密钥
byte[] decrypt = cipher.doFinal(encrypt);
System.out.println("解密后:" + new String(decrypt));
如果,可以在前端和后端进行各种加密的处理,或把加密的信息在前后端之间交换.
相关文章推荐
- JavaScript前端和Java后端的AES加密和解密
- 使用RSA非对称加密完成JavaScript前端分段加密和java后端分段解密
- JavaScript前端编码Java后端解码
- 表单提交时,前端用js加密,后端用Java(struts2)解密
- 在后端是PHP程序的情况下,保持前端Javascript和PHP之间传值的统一编码可以使用以下函数进行处理:
- JAVA后台与前端JAVASCRIPT之间AES加密解密互通
- Java 前端加密传输后端解密以及验证码功能
- RSA前端JS加密,后端JAVA解密实现
- java从前端到后端的json处理
- 在C#后端处理一些结果然传给前端Javascript或是jQuery
- Java 前端加密传输后端解密以及验证码功能
- java 前端页面AES加密数据 后端AES解密
- 网络传输安全--前端js加密后端java解密
- java web SpringMVC后端传json数据到前端页面实例代码
- Java 前端加密传输后端解密以及验证码功能
- RSA前端JS加密,后端JAVA解密实现
- 在C#后端处理一些结果然传给前端Javascript或是jQuery
- JS,CSS是前端,JAVA PHP ASP是后端,数据库是后端的处理对象,非代表前后底
- 用javascript与java进行RSA加密与解密