1,Java端(依赖 common-codec jar)

  1. package com.jiaMi;
  2. import javax.crypto.Cipher;
  3. import javax.crypto.spec.IvParameterSpec;
  4. import javax.crypto.spec.SecretKeySpec;
  5. import org.apache.commons.codec.binary.Base64;
  6. public class AESUtils {
  7. private final static String KEY="1234123412341324";
  8. private final static String IV="1234123412341234";
  9. /**
  10. * aes 加密
  11. * @param data
  12. * @return
  13. */
  14. public static String encryptData(String data){
  15. try {
  16. Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
  17. int blockSize = cipher.getBlockSize();
  18. byte[] dataBytes = data.getBytes();
  19. int plaintextLength = dataBytes.length;
  20. if (plaintextLength % blockSize != 0) {
  21. plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));
  22. }
  23. byte[] plaintext = new byte[plaintextLength];
  24. System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);
  25. SecretKeySpec keyspec = new SecretKeySpec(KEY.getBytes(), "AES");
  26. IvParameterSpec ivspec = new IvParameterSpec(IV.getBytes());
  27. cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
  28. byte[] encrypted = cipher.doFinal(plaintext);
  29. return new String(Base64.encodeBase64(encrypted));
  30. } catch (Exception e) {
  31. e.printStackTrace();
  32. }
  33. return null;
  34. }
  35. /**
  36. * aes 解密
  37. * @param data 密文
  38. * @return
  39. */
  40. public static String decryptData(String data){
  41. try {
  42. byte[] encrypted1 =Base64.decodeBase64(data.getBytes());
  43. Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
  44. SecretKeySpec keyspec = new SecretKeySpec(KEY.getBytes(), "AES");
  45. IvParameterSpec ivspec = new IvParameterSpec(IV.getBytes());
  46. cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec);
  47. byte[] original = cipher.doFinal(encrypted1);
  48. String originalString = new String(original);
  49. return originalString;
  50. } catch (Exception e) {
  51. e.printStackTrace();
  52. }
  53. return null;
  54. }
  55. public static void main(String[] args) {
  56. String data="php和java互通!";
  57. String enStr=AESUtils.encryptData(data);
  58. System.out.println("加密:"+enStr);
  59. String deStr=AESUtils.decryptData(enStr);
  60. System.out.println("解密:"+deStr);
  61. }
  62. }

2,php 端

  1. <?php
  2. $privateKey = "1234123412341324";
  3. $iv    = "1234123412341324";
  4. $data  = "测试用的数据";
  5. //加密
  6. $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $privateKey, $data, MCRYPT_MODE_CBC, $iv);
  7. echo(base64_encode($encrypted));
  8. echo '<br/>';
  9. //解密
  10. $encryptedData = base64_decode(base64_encode($encrypted));
  11. $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $privateKey, $encryptedData, MCRYPT_MODE_CBC, $iv);
  12. echo($decrypted);
  13. ?>


3,js端

  1. <script src="./crypto-js.js"></script>
  2. <script src="./aes.js"></script>
  3. <script src="./pad-zeropadding.js"></script>
  4. <script>
  5. var data = "测试用的数据";
  6. var key  = CryptoJS.enc.Latin1.parse('1234123412341324');
  7. var iv   = CryptoJS.enc.Latin1.parse('1234123412341324');
  8. //加密
  9. var encrypted = CryptoJS.AES.encrypt(data,key,{iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding});
  10. //alert(encrypted);
  11. console.log(encrypted.toString());
  12. //解密
  13. var decrypted = CryptoJS.AES.decrypt(encrypted,key,{iv:iv,padding:CryptoJS.pad.ZeroPadding});
  14. console.log(decrypted.toString(CryptoJS.enc.Utf8));
  15. //alert(decrypted.toString(CryptoJS.enc.Utf8));
  16. lt;/script>

三个js文件下载地址: http://download.csdn.net/detail/wd4871/9526147

java,php,js;AES 互通加解密的更多相关文章

  1. java C# objective-c AES对称加解密

    /** * AES加解密 */ public class AESHelper { final static String AES_KEY = "43hr8fhu34b58123"; ...

  2. rsa互通密钥对生成及互通加解密(c#,java,php)

    摘要 在数据安全上rsa起着非常大的作用,特别是数据网络通讯的安全上.当异构系统在数据网络通讯上对安全性有所要求时,rsa将作为其中的一种选择,此时rsa的互通性就显得尤为重要了. 本文参考网络资料, ...

  3. node.js 实现 AES CTR 加解密

    node.js 实现 AES CTR 加解密 node aesctr 前言 由于最近我们在做一款安全的文件分享 App, 所有文件均需要使用 aes ctr 来进行加密,aes key 还有一整套完整 ...

  4. ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入、和使用、.js文件传输加解密

    JSPatch ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入.和使用..js文件传输加解密 ios开发面临审核周期长,修复bug延迟等让人无奈的问题,所以 ...

  5. javascript JS CryptoJS DES加解密CBC模式与C#DES加解密相同互通

    我们只知道不同的语言解密要相互通用,就需要遵循相同的加密方式,然而在具体做技术预研的时候,就发现会遇到很多问题,网上找的资料也是比较片面,所以我踩了坑,并且把解决方案和相关资料源码提供出来,给需要的朋 ...

  6. 最新版-Python和Java实现Aes相互加解密

    前情 需要使用Python和Java实现同一个AES加解密算法,使Python版本加密的密文能够由Java代码解密,反之亦然. Python实现 Python为3.6版本 # -*- coding: ...

  7. JAVA AES文件加解密

    AES加解密算法,代码如下: /** * Created by hua on 2017/6/30. */ import javax.crypto.Cipher; import javax.crypto ...

  8. JavaScript前端和Java后端的AES加密和解密

    在实际开发项目中,有些数据在前后端的传输过程中需要进行加密,那就需要保证前端和后端的加解密需要统一.这里给大家简单演示AES在JavaScript前端和Java后端是如何实现加密和解密的. 直接上代码 ...

  9. JavaScript前端和Java后端的AES加密和解密(转)

    在实际开发项目中,有些数据在前后端的传输过程中需要进行加密,那就需要保证前端和后端的加解密需要统一.这里给大家简单演示AES在JavaScript前端和Java后端是如何实现加密和解密的. java端 ...

随机推荐

  1. BZOJ3536 : [Usaco2014 Open]Cow Optics

    枚举最后光线射到终点的方向,求出从起点出发以及从终点出发的光路,扫描线+树状数组统计交点个数即可. 注意当光路成环时,对应的两个方向应该只算一次. 时间复杂度$O(n\log n)$. #includ ...

  2. entity framework core 2.0 & sqlite 配置教程

    我用的是vs2017,需要下载.net core 2.0 sdk. .net core 下载地址:点我下载 1.在Visual Studio之中创建一个.net core的控制台项目 2.修改cspr ...

  3. 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第4章编程练习9

    #include <iostream>#include <string>using namespace std;struct CandyBar{ //string kind;  ...

  4. PAT基础6-7

    6-7 统计某类完全平方数 (20 分) 本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144.676等. 函数接口定义: int IsTheNumbe ...

  5. MSP430F5529学习记录

    个人学习理解,难免有错,望各位大佬指出错误,不胜感激 有些引脚在单片机上没看到,在原理图上可以找得到,说明这些引脚没有引出来 单片机上的引出的引脚是可以外部操作的,有些不必要引出的就直接在单片机内部 ...

  6. bzoj 1006

    http://www.cnblogs.com/zxfx100/archive/2011/03/23/1993055.html https://wenku.baidu.com/view/07f4be19 ...

  7. Mac下多个jdk自由切换

    1.缘由,某些场合下需特别配置jdk,如最近学习遇到 annotation注解支持jdk1.5以上版本,而我用的jdk1.8,导致tomcat启动失败,提示降低jdk版本到1.7,1.6 2.搜索ma ...

  8. history.go(-1)和History.back()的区别

    简单的说就是:go(-1): 返回上一页,原页面表单中的内容会丢失:back(-1): 返回上一页,原页表表单中的内容会保留,一般还是back(-1)用的多

  9. .NET开源Protobuf-net组件修炼手册

    一.前言 Protocol Buffer(简称Protobuf或PB) 是一个跨平台的消息交互协议,类似xml.json等 :别只会用Json和XML了,快来看看Google出品的Protocol B ...

  10. mac 下apache服务的根目录

    根据文章的介绍 http://jingyan.baidu.com/article/67508eb434539f9cca1ce4da.html apache服务的根目录是在 /Library/WebSe ...