php nodejs aes,加密解密php与nodejs的加密数据互通

nodejs的加密解密代码示例如下:

#!/usr/bin/env node

var crypto=require('crypto');

//解密

function decode(cryptkey, iv, secretdata) {

var

decipher=crypto.createDecipheriv('aes-256-cbc', cryptkey, iv),

decoded=decipher.update(secretdata, 'base64', 'utf8');

decoded += decipher.final( 'utf8' );

return decoded;

}

//解密

function encode(cryptkey, iv, cleardata) {

var

encipher=crypto.createCipheriv('aes-256-cbc', cryptkey, iv),

encoded=encipher.update(cleardata, 'utf8', 'base64');

encoded += encipher.final( 'base64' );

return encoded;

}

var

cryptkey=crypto.createHash('sha256').update('__tazai_wolf__key').digest(),

iv='1234567890000000',

buf="Hello World",

enc=encode( cryptkey, iv, buf );

var dec=decode(cryptkey, iv, enc);

function b64enc(data) {

var b=newBuffer(data, 'binary');

return b.toString('base64');

}

console.warn("Encoded length: ", enc);

console.warn("Decoded all: " + dec);

请问php能相应的加密解密代码应该如何写?

要求能解上面加密后的如:Gpkr1WGBFhMvNd/Hr0eaBg==

也能加密数据给nodejs进行解密。

需要注意的是在编译的时候需要加上--with-openssl选项

#!/usr/bin/env php

function decode($cryptkey, $iv, $secretdata){

return openssl_decrypt($secretdata,'aes-256-cbc',$cryptkey,false,$iv);

}

function encode($cryptkey, $iv, $secretdata){

return openssl_encrypt($secretdata,'aes-256-cbc',$cryptkey,false,$iv);

}

$cryptkey = hash('sha256','__tazai_wolf__key',true);

$iv = '1234567890000000';

$buf = "Hello World";

$enc = encode($cryptkey,$iv,$buf);

$dec = decode($cryptkey, $iv, $enc);

echo "Encoded length: ",$enc,"\n";

echo "Decoded all: ",$dec,"\n";

运行结果:

➜ ./encode.js

Encoded length: Gpkr1WGBFhMvNd/Hr0eaBg==

Decoded all: Hello World

➜ ./encode.php

Encoded length: Gpkr1WGBFhMvNd/Hr0eaBg==

Decoded all: Hello World

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值