我试图使用谷歌的

https://code.google.com/p/crypto-js/#AES加密JavaScript,就像它的例子一样.问题是,我试图用Java解密它的结果是不同的.我可以看到的唯一区别是填充(CryptoJs使用Pkcs7而java使用Pkcs5),读了一下我意识到Pkcs7和Pkcs5基本相同.

以下是我在Javascript中进行加密的代码示例:

var crypto = require('./aes.js');

var login = 'ABCD';

var key = crypto.CryptoJS.enc.Hex.parse('0123456789012345');

var ive = crypto.CryptoJS.enc.Hex.parse('0123456789012345');

var encrypted = crypto.CryptoJS.AES.encrypt(login, key, {iv: ive});

console.log('encrypted msg = ' + encrypted)

这是我用Java解密它的代码:

public String decrypt(byte[] cipherText) throws Exception {

String psk = "0123456789012345";

String iv = "0123456789012345";

try {

String encryptionKey = psk;

final Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding", "SunJCE");

final SecretKeySpec key = new SecretKeySpec(encryptionKey.getBytes(UTF8), "AES");

cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(iv.getBytes(UTF8)));

return new String(cipher.doFinal(cipherText), UTF8);

} catch (BadPaddingException | IllegalBlockSizeException | UnsupportedEncodingException | InvalidAlgorithmParameterException | InvalidKeyException | NoSuchAlgorithmException | NoSuchPaddingException | NoSuchProviderException ex) {

LOG.log(Level.SEVERE, ex.getMessage(), ex);

throw new Exception(ex.getMessage());

}

}

你知道它为什么会那么糟糕吗?它是一个不同的算法还是我在其他地方失败?

crytojs加密 java解密,使用CryptoJS在Javascript中加密并在Java中解密相关推荐

  1. java filereader blob_如何从javascript发送音频blob到java spring服务...

    我正在使用RecordRTC在我的javascript客户端录制一些音频数据.我想通过WebSockets将这个音频数据发送到我的Spring RestController. 录制后我在我的javas ...

  2. JavaScript实现加密与解密详解

    这篇文章介绍了Java脚本语言实现加密与解密详解的方法,文中通过示例代码介绍的非常详细.对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 目前原生射流研究-貌似并没有提供讯息摘要5计算相 ...

  3. 客户端JavaScript加密数据,服务端Java解密数据

    原文:http://blog.csdn.net/peterwanghao/article/details/43303807 在普通的页面提交时,如果没有使用SSL,提交的数据将使用纯文本的方式发送.如 ...

  4. Vue前端和Java后端 联调使用AES 前后端加密解密

    Vue前端和Java后端 联调使用AES 前后端加密解密 最近在项目中需要针对重要数据进行加密传输,在网上找了一大推加密方式 最终采用AES 加密 Java端 package com.zk.web.u ...

  5. java中3des cbc,js與java通用的3DES(ECB,CBC)+Base64加密編碼,解碼解密

    J S端加密過程: key的處理: 通過創建指定的key,key必須是16位/24位/32位其中一種,但是常用的3DES加密的key為24位,下面使用的就是24位,key的長度可以隨意指定,在轉換ke ...

  6. java和c 的rsa加密算法_RSA算法签名技术Java与C++统一(加密解密结果一样)

    RSA算法签名技术Java与C++统一 (加密解密结果一样) 源代码下载地址:http://www.doczj.com/doc/64f44a94a0116c175f0e484d.html/produc ...

  7. java中完成md5加密解密_java实现md5加密解密 notNET中加密和解密的实现方法

    java实现md5加密解密 notNET中加密和解密的实现方法 亦或是旅途风光 7-14 1918℃ 22 [ ee21.cn - ASP.NET ] .NET将原来独立的API和SDK合并到一个框架 ...

  8. js怎么实现对html代码加密解密,javascript脚本加密解密及HTML转JS

    HTML & Javascript 相互转换 < body > HTML & Javascript 输入 & 输出 < br > < script ...

  9. ss加密php,js前端加密,php后端解密(crypto-js,openssl_decrypt)

    基于PHP和JS的AES相互加密解密方法详解(CryptoJS) 基于PHP和JS的AES相互加密解密方法详解(CryptoJS) 注意说明: 1. 首先引入CryptoJS包中的aes.js和pad ...

最新文章

  1. 2022互联网大厂薪资大比拼
  2. SAP SD基础知识之物料确定(Material Determination)
  3. php 一行代码解决二维数组去重
  4. Qt Creator构建Web应用程序
  5. 【数据结构与算法】之深入解析“最优运动员比拼回合”的求解思路与算法示例
  6. mysql查询并设置高亮_慢查询分析调优工具~mysqldumpslow
  7. css中伪类与伪元素的区别
  8. perform指标分析_performace 监控统计
  9. 【渝粤教育】电大中专新媒体营销实务 (16)作业 题库
  10. C++ 普通函数和模板函数调用规则
  11. 台式计算机光标时不时跳动,解决方案:如何解决联想笔记本触摸板上的光标跳动?...
  12. 微信支付id出现的重复支付解决方法和app应用中多种支付方式之间的对比
  13. USACO 3.2.6 Sweet Butter 香甜的黄油(最短路)
  14. 如何获取html输入框的值,jQuery如何获取各种input输入框的值
  15. 用vins_mono运行kitti(raw data)数据集并用evo评估。
  16. 警惕!全球酒店门锁很容易受到黑客攻击
  17. 在同一局域网如何共享文件
  18. 深度学习中 经常提到的 end to end 的理解
  19. C#中DataGridView移除选中行
  20. 【ALSA】关于alsa的总结

热门文章

  1. 解码转码---System.web.HttpUtility 对象分析
  2. IP Precedence DSCP、TOS
  3. React: 关于React通信方式
  4. DevOps \u0026 SRE 必备技能清单
  5. 大数据与测试测量的结合
  6. 接口测试--version2
  7. bootstrap checkbox
  8. 条款15: 让operator=返回*this的引用
  9. 36进12第二场淘汰赛:老牟如何晋级?(视频)
  10. 编写yara规则 检测恶意软件