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

WBOY
풀어 주다: 2016-06-06 20:52:13
원래의
1149명이 탐색했습니다.

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);
로그인 후 복사
로그인 후 복사

请问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);
로그인 후 복사
로그인 후 복사

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!