crypto前台AES加密,后台AES解密
来源:互联网 发布:sqlalchemy sql 编辑:程序博客网 时间:2024/05/16 12:14
正值这次项目的安全测试,来分享一下在项目中的加密。
crypto前台加密
CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。目前已支持的算法包括:
- MD5
- SHA-1
- SHA-256
- AES
- Rabbit
- MARC4
- HMAC
- HMAC-MD5
- HMAC-SHA1
- HMAC-SHA256
- PBKDF2
官网地址:https://github.com/brix/crypto-js
//引用aesjs<script type="text/javascript" src="${ctx}/js/crypto/rollups/aes.js"></script><javascript type="text/javascript">//加密functionfunction 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: iv,mode:CryptoJS.mode.CBC}); return encrypted.toString(); } </javascript>//提交到后台验证$.post("${ctx}/base/security/userinfo!login.action", { account : aesaccount, pwd : aespwd, vcode : vcode, vcodepass: vcodepass}
后台解密
package ICT.utils; import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;import org.apache.commons.codec.binary.Base64;/** * helper class to encrypt and decrypt string */public class CryptoHelper { 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("0102030405060708" .getBytes()); cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv); byte[] encrypted1 = Base64.decodeBase64(sSrc);//先用bAES64解密 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; } } /* public static void main(String[] args) { try { String str ="123456"; String enStr = digest(str); System.out.println(enStr); //System.out.println(decrypt(enStr)); } catch (Exception ex) { System.out.println(ex.getMessage()); } }*/ public static void main(String[] args) { CryptoHelper my=new CryptoHelper(); System.out.println(my.digest("1")); }}
2 0
- crypto前台AES加密,后台AES解密
- AES 后台加密 CryptoJS 前台解密demo
- 加密解密。(aes, java)
- AES加密解密类
- AES 加密/解密备忘
- java,AES加密,解密
- AES 加密解密 c#
- AES加密解密程序。
- AES加密和解密
- java AES加密解密
- java AES加密解密
- AES加密解密 应用
- AES 加密解密API
- php AES加密解密
- AES加密解密
- AES加密与解密
- java AES加密解密
- c# aes 加密解密
- nginx 负载均衡
- 做一个绕Y轴旋转的动画时遇到问题
- Unity3D-Mecanim动画系统-IK
- HDU 5532 Almost Sorted Array
- JSTL标签提示:"items" does not support runtime expressions
- crypto前台AES加密,后台AES解密
- HDU2046骨牌铺方格
- POJ 2251 3维BFS
- 互联网系统架构的演进
- 贪心算法证明问题
- 如何安装mysql ----官网下载的mysql5.7 没有data目录
- keepalived工作原理和配置说明
- android中的几个Versoin
- HDU2191悼念512汶川大地震遇难同胞——珍惜现在,感恩生活