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. (转)JavaWeb学习之Servlet(三)----Servlet的映射匹配问题、线程安全问题

    [声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4140529.html 一.Servlet映射匹配问题: 在第一篇文章中的 ...

  2. 使用log

    1:下载和安装log4j log4j的官方站点是http://logging.apache.org/log4j/登录此网站即可下载. http://logging.apache.org/log4j/2 ...

  3. SourceTree安装教程和破解教程

    SourceTree破解版是一款非常实用的编程工具,这是一款专业的Git和Hg客户端,界面简洁,操作简单易上手,是开发者的必备工具,欢迎大家来绿色资源网下载体验!SourceTree是一款免费的Git ...

  4. learning to generate question headlines 讲座

    渣排版预警! 出发点 新闻用户为什么会点: 主观:用户兴趣/热点事件 客观:新闻标题(新闻入口)/新闻内容(更简单,更有趣) 标题分类: surprise,好奇,负例,数字,你,客观的描述,问题的形式 ...

  5. Myeclispe 代码自动补全

    1.Myeclispe—>Preference 2.Java->Editor->Content Assist 3.Auto activation for java 补全(.abcde ...

  6. es6冲刺02

    1.Symbol es6新增的数据类型 1)概念 提供一个独一无二的值 let a=Symbol() let b=Symbol() 或 let c=Symbol.for('c') let d=Symb ...

  7. Firefly-RK3399笔记

    有用的连接: Rockchip官方资料: http://opensource.rock-chips.com/wiki_Main_Page http://opensource.rock-chips.co ...

  8. 【面试 spring boot】【第十七篇】spring boot相关面试

    spring boot相关面试 ====================================================== 1.spring boot启动类  启动原理 参考:htt ...

  9. git操作中出现Unlink of file '......' failed. Should I try again?

    在操作git中有时候会提示 Unlink of file '......' failed. Should I try again? 原因是你工作目录有某些文件正在被程序使用,这个程序多半是Idea,V ...

  10. Asp.Net Core 404处理

    在使用Asp.Net Core Mvc时 404处理整理如下 一.自带404状态处理 1.控制器视图子弹404视图 NotFoundResult,NotFoundObjectResult // // ...