网站首页 > 文章中心 > 其它

php解密js数据加密_php数据加密解密函数

作者:小编 更新时间:2023-08-13 07:30:47 浏览量:324人看过

前端使用CryptoJS AES加密 ,后端php解密问题

php?

php解密js数据加密_php数据加密解密函数-图1

$data?=?"This?is?an?AES?crypt?demo.";?

//加密?

echo?$encrypted,PHP_EOL;

//?解密?

$encryptedData?=?$encrypted;?

echo($decrypted);

输出结果如下:

This?is?an?AES?crypt?demo.

前端JS AES加密 后端PHP AES加解密

!DOCTYPEhtml

html

head

? titleaes demo/title

/head

body

? script type="text/javascript" src="./CryptoJS/aes.js"/script

? script type="text/javascript" src="./CryptoJS/pad-zeropadding.js"/script

? script type="text/javascript"

? var encrypted = CryptoJS.AES.encrypt(text, key, {

? ? ? iv: iv,

? ? ? mode: CryptoJS.mode.CBC,

? ? ? padding: CryptoJS.pad.ZeroPadding

? }).toString()

? document.write(encrypted);

? /script

/body

/html

后端

? }?

? }

ps:

php需要

则$password才能正确解析出来

需要引入的两个js文件

ase.js

[javascript] view plain copy

/*

code.google.com/p/crypto-js

code.google.com/p/crypto-js/wiki/License

*/

var CryptoJS=CryptoJS||function(u,p){var d={},l=d.lib={},s=function(){},t=l.Base={extend:function(a){s.prototype=this;var c=new s;ac.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)(this[c]=a[c]);a.hasOwnProperty("toString")(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},

e)).finalize(b)}}});var n=d.algo={};return d}(Math);

l)}})();

c[d]},q=(d.BlockCipherMode=l.extend({createEncryptor:function(e,a){return this.Encryptor.create(e,a)},createDecryptor:function(e,a){return this.Decryptor.create(e,a)},init:function(e,a){this._cipher=e;this._iv=a}})).extend();q.Encryptor=q.extend({processBlock:function(e,a){var b=this._cipher,c=b.blockSize;x.call(this,e,a,c);b.encryptBlock(e,a);this._prevBlock=e.slice(a,a+c)}});q.Decryptor=q.extend({processBlock:function(e,a){var b=this._cipher,c=b.blockSize,d=e.slice(a,a+c);b.decryptBlock(e,a);x.call(this,

b.keySize,b.ivSize);l.iv=d.iv;b=a.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){l=this.cfg.extend(l);c=this._parse(c,l.format);d=l.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.iv=d.iv;return a.decrypt.call(this,b,c,d.key,l)}})}();

pad-zeropadding.js

/**

* Zero padding strategy.

CryptoJS.pad.ZeroPadding = {

? pad: function (data, blockSize) {

? ? ? // Shortcut

? ? ? // Pad

? ? ? data.clamp();

? ? ? data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);

? },?

? unpad: function (data) {

? ? ? var dataWords = data.words;?

? ? ? // Unpad

? ? ? var i = data.sigBytes - 1;

? ? ? ? ? i--;

? ? ? }

? ? ? data.sigBytes = i + 1;

};?

php加密数字 js解密

在JS里面也可嵌套PHP语言,所以可以直接嵌套就好了

js中常见的数据加密与解密的方法

加密在我们前端的开发中也是经常遇见的.本文只把我们常用的加密方法进行总结.不去纠结加密的具体实现方式(密码学,太庞大了).

常见的加密算法基本分为这几类,

RSA加密:RSA加密算法是一种非对称加密算法.在公开密钥加密和电子商业中RSA被广泛使用.(这才是正经的加密算法)

非对称加密算法:非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥).公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密.因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法.

DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法

AES这个标准用来替代原先的DES

DES/AES我们合并在一起介绍其用法和特点

PHP常用加密解密方法

$flag = true ?返回原始流数据

true ?返回原始流数据

$algo : 算法名称,可通过hash_algos()函数获取所有hash加密的算法

而不同.

true ?返回原始流数据.

具体算法依赖于PHP检查之后支持的算法和$salt的格式和长度,当 然具体结果也和操作系统有关.比较结果采用 hash_equals($crypted,crypt($input,$salt));//且salt值相同

Password_verify($str,$crypted);

函数返回哈希加密后的密码字符串, password_hash() 是crypt()的 一个简单封装

$algo : 算法 PASSWORD_DEFAULT ,PASSWORD_BCRYPT

$options = [

"cost"=10,//指明算法递归的层数,

"salt"="xxadasdsad"//加密盐值,即将被遗 弃,采用系统自动随机生成安全性更高

];

使用的算法、cost 和盐值作为哈希的一部分返回

Password_verify($str,$hashed);

可以进行解码;

string $mode [, string $iv ] )

mcrypt_decrypt ( string $cipher , string $key , string $crypted ,

$ciper:加密算法,mcrypt_list_algorithms()可以获取该函数所有支持的算法

$mode : 加密模式 ,mcrypt_list_modes()获取所有支持的加密模式,ecb,cbc

$key: 加密的秘钥,mcrypt_get_key_size ( string $cipher , string $mode )

获取指定的算法和模式所需的密钥长度.$key要满足这个长度,如果长 度无效会报出警告.

$iv : 加密的初始向量,可通过mcrypt_create_iv ( int $size [, int $source = MCRYPT_DEV_URANDOM ] ),

Iv的参数size:

通过mcrypt_get_iv_size ( string $cipher , string $mode )获取

Iv 的参数source:

Note: 需要注意的是,如果没有更多可用的用来产生随机数据的信息, 那么 MCRYPT_DEV_RANDOM 可能进入阻塞状态.

$data : 要加密的字符串数据

php的des加密用js解密解除乱码,发现2个加密出的东西不一样

以上就是土嘎嘎小编为大家整理的php解密js数据加密相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章