<script type="text/javascript" src="/CryptoJS/aes.js"></script>
<script type="text/javascript" src="/CryptoJS/pad-zeropadding.js"></script>
<script type="text/javascript">
var data="test";//加密字符串
var key = CryptoJS.enc.Latin1.parse('@12345678912345!');//密钥
var iv = CryptoJS.enc.Latin1.parse('@12345678912345!');//与密钥保持一致
//加密
var data = JSON.stringify(data);//将数据对象转换为json字符串
var encrypted = CryptoJS.AES.encrypt(data,key,{iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding});
encrypted=encodeURIComponent(encrypted);
document.write(decrypted);//输出加密后的字符串
//解密
var data="加密的字符串";
//key和iv和加密的时候一致
var decrypted = CryptoJS.AES.decrypt(data,key,{iv:iv,padding:CryptoJS.pad.ZeroPadding});
decrypted=decrypted.toString(CryptoJS.enc.Utf8);
document.write(decrypted);//输出解密后的数据
</script>

注意:在实际用的时候和php传输中,js加密后的字符串里面的+被浏览器解析成了空格  然后php解密的时候出错;这里可以对加密之后的字符串做进一步处理encrypted=encodeURIComponent(encrypted);就没有这个问题了

PHP的加密解密方法:

$privateKey="@12345678912345!";
$iv="@12345678912345!";
//加密
$encrypted=mcrypt_encrypt(MCRYPT_RIJNDAEL_128,$privateKey,$data,MCRYPT_MODE_CBC,$iv);
echo base64_encode($encrypted);
//解密
$encryptedData=base64_decode($data);
$decrypted=mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$privateKey,$encryptedData,MCRYPT_MODE_CBC,$iv);
$decrypted=rtrim($decrypted,"\0");//注意!解密出来的数据后面会出现六个红点;这句代码可以处理掉,从而不影响进一步的数据操作
return $decrypted;

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

BASE64编码解码工具:
http://tools.jb51.net/transcoding/base64
密码安全性在线检测:
http://tools.jb51.net/password/my_password_safe
高强度密码生成器:
http://tools.jb51.net/password/CreateStrongPassword
MD5在线加密工具:
http://tools.jb51.net/password/CreateMD5Password
在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt
在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha
在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode

JS实现AES加密并与PHP互通的方法分析的更多相关文章

  1. AES加密CBC模式兼容互通四种编程语言平台【PHP、Javascript、Java、C#】

    原文:AES加密CBC模式兼容互通四种编程语言平台[PHP.Javascript.Java.C#] 由于本人小菜,开始对AES加密并不了解,在网络上花了比较多时间查阅资料整理: 先简单从百度找来介绍: ...

  2. 我去!爬虫遇到JS逆向AES加密反爬,哭了

    今天准备爬取网页时,遇到『JS逆向AES加密』反爬.比如这样的: 在发送请求获取数据时,需要用到参数params和encSecKey,但是这两个参数经过JS逆向AES加密而来. 既然遇到了这个情况,那 ...

  3. AES 加密 PHP 和 JAVA 互通

    PHP代码: <?php class Security { public static function encrypt($input, $key) { $size = mcrypt_get_b ...

  4. JS获取网页中HTML元素的几种方法分析

    getElementById getElementsByName getElementsByTagName 大概介绍 getElementById ,getElementsByName ,getEle ...

  5. JS和利用openssl的object C加密得到相同的aes加密密文

    这是之前接到的一个工作内容,项目原本的登录操作是获得账号和密码以后,对密码进行一遍MD5加密,然后传递账号和密文到cgi文件.在c中获取到账户以后,从数据库中获取到密码,对密码进行一次MD5的加密,然 ...

  6. java与C#、.NET AES加密、解密 解决方案

      1.情景展示 Java提供的密钥,C#无法解密. 2.原因分析 在Java中,AES的实际密钥需要用到KeyGenerator 和 SecureRandom,但是C#和.NET 里面没有这2个类, ...

  7. C# AES加密解密

    完整代码: /****************************************************************** * 创建人:HTL * 创建时间:2015-04-1 ...

  8. JS前台base32加密,C#后台解码

    公司的系统应用后,客户那边用appscan工具检测到严重的漏洞 1.使用 SQL 注入的认证旁路 (1/2)--未对用户输入正确执行危险字符清理 2.已解密的登录请求 (2/2)----诸如用户名.密 ...

  9. php实现aes加密类

    php实现的aes加密类,代码中有使用方法. <?php //php aes加密类 class AESMcrypt { public $iv = null; public $key = null ...

随机推荐

  1. 微信小程序多商品评价评星提交

    <form bindsubmit="submitComment"> <block wx:for="{{commentList}}" wx:ke ...

  2. 局部内部类为什么只能访问final局部变量,对于成员变量却可以随便访问?

    局部内部类为什么只能访问final局部变量,对于成员变量却可以随便访问? public class OuterClass { private int memberField = 10; public ...

  3. [洛谷]P1505 [国家集训队]旅游

    题目链接: 传送门 题目分析: 树剖板,支持单点修改,区间取反,区间求最大值/最小值/和 区间取反取两次等于没取,维护一个\(rev\ tag\),每次打标记用\(xor\)打,记录是否需要翻转,\( ...

  4. VS2012与windos版本不兼容问题

    昨天晚上加完班,想着把windows更新下.今天上午就发现再运行VS报错了,提示VS2012与windows版本不兼容,打开.sln文件后,VS自动关闭.错误如下: 查看后网上提示安装VS2012的一 ...

  5. [code]自动白平衡white blance

    //2013.10.24 //eageldiao //自动白平衡 CvScalar rgb; rgb=cvAvg(src); #ifdef COLOR_GW //灰度世界假设(R,= R*K/Ravg ...

  6. Pandas怎样按条件删除行?

    来自: https://stackoverflow.com/questions/13851535/delete-rows-from-a-pandas-dataframe-based-on-a-cond ...

  7. Python学习之列表--自动超市购物车

    效果图: 实现代码: menu = [0,5000,500,9000,3000,30,50,7000,70,40]name = [0,"iphone","bicycle& ...

  8. jmeter体系结构

    jmeter体系结构 jmeter体系结构: 1.取样器.断言.监听器组合在一起就可以帮助我们完成发送请求.验证结果及记录结果三项工作 (1)取样器的访问路径:[测试计划]---[线程组]       ...

  9. crm-ssh-列表显示(顾客列表,用户,联系人列表)

    客户列表 1 分析 2 书写步骤 1.封装PageBean 2.书写Action 3.书写Service 4.书写Dao 5.完成strutx以及spring的配置 6.书写前台list.jsp页面 ...

  10. spring整合http

    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接出处:https://blog.csdn.net/qq_3076499,否则保留追究法律责任的权利. 如果 ...