node.js - php与nodejs的加密数据互通

WBOY
Release: 2016-06-06 20:52:13
Original
1149 people have browsed it

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   = new Buffer(data, 'binary');
        return b.toString('base64');
    }

console.warn("Encoded length: ", enc);
console.warn("Decoded all: " + dec);
Copy after login
Copy after login

请问php能相应的加密解密代码应该如何写?
要求能解上面加密后的如:Gpkr1WGBFhMvNd/Hr0eaBg==
也能加密数据给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   = new Buffer(data, 'binary');
        return b.toString('base64');
    }

console.warn("Encoded length: ", enc);
console.warn("Decoded all: " + dec);
Copy after login
Copy after login

请问php能相应的加密解密代码应该如何写?
要求能解上面加密后的如:Gpkr1WGBFhMvNd/Hr0eaBg==
也能加密数据给nodejs进行解密。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!