aes前台加密后台解密
aes加密npm地址:https://www.npmjs.com/package/crypto-js
aes加密git地址/下载: https://github.com/brix/crypto-js
直接上代码:
前台代码:
/*
* 加密
*/
function encrypt(str, key) {
key = CryptoJS.enc.Utf8.parse(key ? key : "1111111111111111");// 秘钥
var iv = CryptoJS.enc.Utf8.parse('1234567890123412');//向量iv
var encrypted = CryptoJS.AES.encrypt(str, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding });
return encrypted.toString();
}
/**
* 解密
* @param str
*/
function decrypt(str) {
var key = CryptoJS.enc.Utf8.parse("1111111111111111");// 秘钥
var iv = CryptoJS.enc.Utf8.parse('1234567890123412');//向量iv
var decrypted = CryptoJS.AES.decrypt(str, key, {iv: iv, padding: CryptoJS.pad.ZeroPadding});
return decrypted.toString();
}
//调用
//加密
console.log(CryptoJS.pad.ZeroPadding);
console.log(encrypt("123456"));
//解密
console.log(decrypt("123456"));
后台php代码:
<?php
$privateKey = "1111111111111111"; //秘钥
$iv = "1234567890123412"; //向量
$data = "******";//前台加密的数据 //解密
$encryptedData = base64_decode($data);
$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $privateKey, $encryptedData, MCRYPT_MODE_CBC, $iv);
$decrypted = rtrim($decrypted, "\0"); //注意!解密出来的数据后面会出现六个红点;这句代码可以处理掉,从而不影响进一步的数据操作
echo($decrypted);//解密数据
echo "<hr>"; //加密测试与$data比对。
$data1 = "123456";//前台需要加密的数据
echo base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $privateKey, $data1, MCRYPT_MODE_CBC,$iv)); //加密的数据可以与前台对比是一致的
注意:php后台有很多框架,如果使用phalcon框架自已的aes加密时,前台与后台的iv是不同的,那么是不能解密的,请注意这一点
aes前台加密后台解密的更多相关文章
- RSA前台加密后台解密的应用
写在前面 项目安全测试需要将登录功能修改, AES加密不符合要求, 现改为RSA非对称加密.(将登录密码加密后传给后台, 后台解密后再进行一系列的校验) .期间遇到了前台js加密但是后台解密失败的问题 ...
- Vue AES+MD5加密 后台解密
前端VUE vue项目中安装crypto-js npm install crypto-js --save-dev CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加 ...
- RSA前台加密后台解密
RSA解密时BadPaddingException java rsa 解密报:javax.crypto.BadPaddingException: Decryption error Java安全架构__ ...
- asp.net MVC ajax 请求参数前台加密后台解密
最近有一个需求要求页面查询数据库,查询内容保存到excel里面作为附件加密打包下载.查询的sql作为参数传入后台,实现加密提交.这里做个记录,后面用到直接来拿. 控制器 public ActionRe ...
- AES对称加密和解密
package demo.security; import java.io.IOException; import java.io.UnsupportedEncodingException; impo ...
- JAVA实现AES的加密和解密算法
原文 JAVA实现AES的加密和解密算法 import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import ja ...
- java的AES对称加密和解密,有偏移量
import java.math.BigDecimal; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; i ...
- ORACLE 字段AES算法加密、解密
ORACLE 字段AES算法加密.解密(解决中文乱码问题)2014年02月12日 17:13:37 华智互联 阅读数:97971.加解密函数入口 CREATE OR REPLACE FUNCTION ...
- AES对称加密和解密(转)
AES对称加密和解密 package demo.security; import java.io.IOException; import java.io.UnsupportedEncodingExce ...
随机推荐
- 代码实现:输入三个整数x,y,z,请把这三个数由小到大输出。
import java.util.Arrays; import java.util.Scanner; //输入三个整数x,y,z,请把这三个数由小到大输出. public class Test { p ...
- 使用matlab画半透明椭圆
先上最终效果图: 本来是想直接用scatter和alpha来画的,结果在尝试以下代码后,发现无法显示透明效果 scatter(rand(1000,1),rand(1000,1), 'filled'); ...
- 【flask】使用pipenv管理依赖环境
[前堤] 已经安装了pipenv环境,并且项目目录下存在pipfile 如果要在另一个开发环境做开发,则将代码和Pipfile复制过去,运行以下命令: pipenv install --dev 是否要 ...
- oracle系统视图V$
--数据字典表select * from v$fixed_table;select * from v$fixed_view_definition;select * from dictionary; - ...
- 10 mysql选错索引
10 mysql选错索引 在mysql表中可以支持多个索引,有的sql不指定使用哪个索引,由mysql自己来决定,但是有时候mysql选错了索引,导致执行很慢. 例子 CREATE TABLE `t1 ...
- 内容与org.apache.axis2.AxisFault: Connection refused: connect 没有太大的关系
昨天下午 在SVN 检索下来项目 运行的时候遇到一个问题: 然后检查半天访问路径 再运行 居然又出现这个问题 然后又是一顿操作............. 网上找了半天方法 好多人说是 这样的 ...
- Prometheus在Kubernetes下的服务发现机制
Prometheus作为容器监控领域的事实标准,随着以Kubernetes为核心的云原生热潮的兴起,已经得到了广泛的应用部署.灵活的服务发现机制是Prometheus和Kubernetes两者得以连接 ...
- cocos2dx基础篇(26) 单例模式
单例模式,说的通俗一点就是:创建某个类的全局唯一静态实例对象.也就是说从它创建开始,一直到整个游戏程序结束才会释放资源,期间一直保存的着数据. 单例类在大部分游戏中应该是必不可少的部分,如整个游戏音乐 ...
- TIOBE11月份编程语言排行榜:C非常接近Java,分析下中美的就业情况
TIOBE公布11月份编程语言排行榜:C非常接近Java Swift挤进前10,分析下中美的就业情况. 我们先看看他们官方对数据的解读 本月TIOBE指数前20位出现了一些有趣的变动.首先,C语言现在 ...
- 20191209 Linux就该这么学(5)
5. 用户身份与文件权限 5.1 用户的身份和能力 Linux 系统的管理员之所以是 root,并不是因为它的名字叫 root,而是因为该用户的身份号码即 UID( User IDentificati ...