java des加密与js解密
java代码:import java.io.IOException; import java.security.SecureRandom;import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec;import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder;/*** DES加密 解密算法** @author zhou biao* @date 2019-2-17 上午10:12:11*/ public class DesUtils {private final static String DES = "DES";//方式private final static String ENCODE = "UTF-8";//编码private final static String defaultKey = "73961011";//8的倍数秘钥public static void main(String[] args) throws Exception {String data = "测试";// System.err.println(encrypt(data, key));// System.err.println(decrypt(encrypt(data, key), key));System.out.println(encrypt(data));System.out.println(decrypt(encrypt(data)));}/*** 使用 默认key 加密** @return String* @author lifq* @date 2015-3-17 下午02:46:43*/public static String encrypt(String data) throws Exception {byte[] bt = encrypt(data.getBytes(ENCODE), defaultKey.getBytes(ENCODE));String strs = new BASE64Encoder().encode(bt);return strs;}/*** 使用 默认key 解密** @return String* @author lifq* @date 2015-3-17 下午02:49:52*/public static String decrypt(String data) throws IOException, Exception {if (data == null)return null;BASE64Decoder decoder = new BASE64Decoder();byte[] buf = decoder.decodeBuffer(data);byte[] bt = decrypt(buf, defaultKey.getBytes(ENCODE));return new String(bt, ENCODE);}/*** Description 根据键值进行加密** @param data* @param key* 加密键byte数组* @return* @throws Exception*/public static String encrypt(String data, String key) throws Exception {byte[] bt = encrypt(data.getBytes(ENCODE), defaultKey.getBytes(ENCODE));String strs = new BASE64Encoder().encode(bt);return strs;}/*** Description 根据键值进行解密** @param data* @param key* 加密键byte数组* @return* @throws IOException* @throws Exception*/public static String decrypt(String data, String key) throws IOException,Exception {if (data == null)return null;BASE64Decoder decoder = new BASE64Decoder();byte[] buf = decoder.decodeBuffer(data);byte[] bt = decrypt(buf, key.getBytes(ENCODE));return new String(bt, ENCODE);}/*** Description 根据键值进行加密** @param data* @param key* 加密键byte数组* @return* @throws Exception*/private static byte[] encrypt(byte[] data, byte[] key) throws Exception {// 生成一个可信任的随机数源SecureRandom sr = new SecureRandom();// 从原始密钥数据创建DESKeySpec对象DESKeySpec dks = new DESKeySpec(key);// 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);SecretKey securekey = keyFactory.generateSecret(dks);// Cipher对象实际完成加密操作Cipher cipher = Cipher.getInstance(DES);// 用密钥初始化Cipher对象cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);return cipher.doFinal(data);}/*** Description 根据键值进行解密** @param data* @param key* 加密键byte数组* @return* @throws Exception*/private static byte[] decrypt(byte[] data, byte[] key) throws Exception {// 生成一个可信任的随机数源SecureRandom sr = new SecureRandom();// 从原始密钥数据创建DESKeySpec对象DESKeySpec dks = new DESKeySpec(key);// 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);SecretKey securekey = keyFactory.generateSecret(dks);// Cipher对象实际完成解密操作Cipher cipher = Cipher.getInstance(DES);// 用密钥初始化Cipher对象cipher.init(Cipher.DECRYPT_MODE, securekey, sr);return cipher.doFinal(data);} }
//前端js解密
下载crypto-js.js
下载地址:https://www.npmjs.com/package/crypto-js
在项目引用
//DES 加密 key与后端一样的秘钥(8的倍数) message(值) function encryptByDES(message, key) {var keyHex = CryptoJS.enc.Utf8.parse(key);var encrypted = CryptoJS.DES.encrypt(message, keyHex, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});return encrypted.toString(); } //DES 解密 function decryptByDES(ciphertext, key) {var keyHex = CryptoJS.enc.Utf8.parse(key);// direct decrypt ciphertextvar decrypted = CryptoJS.DES.decrypt({ciphertext: CryptoJS.enc.Base64.parse(ciphertext)}, keyHex, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});return decrypted.toString(CryptoJS.enc.Utf8); }
java des加密与js解密相关推荐
- Java DES 加密解密
1.加密的相关概念 1.明文:被隐蔽的消息称作明文(plaintext) 2.密文:隐蔽后的消息称作密文(ciphertext) 3.加密:将明文变换成密文的过程称作加密(encryption) 4. ...
- js des加密 java_java JS DES互相加密解密 通用!!!
如果 出现 异常 javax.crypto.IllegalBlockSizeException 那就看我博客园的 另外一篇 解决这个异常 帮客户整了1天 试了N个JS 的方法 终于找我弄出来了! j ...
- java des加密解密_JAVA和c# 之间数据通讯时通过DES进行加密解密
c#开发前端时调用java开发的接口,需要数据加密后通讯.两边都需要同时通过DES(BASE64)进行加解密. 代码如下 c#端: 加密 public static String Encrypt(St ...
- java des加密类_java的DES加密解密辅助类
java的DES加密解密辅助类 package temptest; import java.io.IOException; import java.io.UnsupportedEncodingExce ...
- java des加密解密_Java实现的DES加密解密工具类实例
本文实例讲述了Java实现的DES加密解密工具类.分享给大家供大家参考,具体如下: 一个工具类,很常用,不做深入研究了,那来可直接用 DesUtil.java package lsy; import ...
- java des加密解密_DES加密和解密的JAVA实现方式
import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.SecretKey; import ...
- java des 加密工具的使用,Java中DES加密解密工具类的实现实例
这篇文章主要介绍了Java实现的DES加密解密工具类,结合具体实例形式分析了Java实现的DES加密解密工具类定义与使用方法,需要的朋友可以参考下 本文实例讲述了Java实现的DES加密解密工具类.分 ...
- Java Des加密解密工具类
原文链接: 1.http://www.java2s.com/Code/Java/Security/EncryptingaStringwithDES.htm 2.http://www.avajava.c ...
- Java 前端加密传输后端解密以及验证码功能
1. 加密解密 1.1 前端js加密概述 对系统安全性要求比较高,那么需要选择https协议来传输数据.当然很多情况下一般的web网站,如果安全要求不是很高的话,用http协议就可以了.在这种情况下, ...
最新文章
- 10道海量数据处理的面试题
- 理解Hinge Loss (折页损失函数、铰链损失函数)
- Visual Studio 2015编译Lua 5.3.4遇到的坑
- 004_Redis的String数据类型
- java tree类子项的添加和删除_使用Java实现二叉树的添加,删除,获取以及遍历...
- 多人姿态识别框架——AlphaPose
- Linux中变量#,@,0,1,2,*,$$,$?的意思
- 测量学—误差理论与测量平差基础
- 编码格式转换--常见编码间的转换以及中文简繁互换
- EXTJS资源库管理平台 2013.5.26-在线制作头像
- 毕业设计之路(6)——uip
- 操作Oracle类型CLOB和BLOB
- Siri, Alexa, Cortana, 为什么所有的语音助手都是“她”?
- 架构就是bull shit
- node.js Stream(流) 和 EJS 模板引擎——0822
- 【新闻解读2019年】四分类不能准确区分所有垃圾 市民建议用更直白的名称
- 戴维斯双击背后的故事 - 读《戴维斯王朝》
- 【记录】Java 设置Excel数据有效性
- Revit API:预制零件 Fabrication Part
- 产品经理设计产品流程都有哪些步骤
热门文章
- CSS 伪类: 什么是 CSS 伪类?CSS 伪类怎么分类? CSS 伪类有哪些?以及分类对应的伪类
- wifidog android认证,wifidog+authpuppy认证页面的配置
- Layui的行内数据的获取
- OSChina 周五乱弹 —— 拿着遣散费做个浪漫人
- xinxin -制作网页
- trie(字典树、前缀树)
- trie php,php-优化Trie实现
- 3.7V锂电池供电系统设计(含充电、保护、供电及电源切换电路器件选型和原理图)
- 人渣scum服务器物品,人渣SCUM有哪些食物 人渣SCUM采集物品一览
- window cocoscreator 单双显界面不见问题