使用Crypto进行加密,解密

时间:2017-05-16 06:50:43

标签: node.js cryptography base64

我正在使用Crypto来加密和解密我的数据。 所以,假设我的加密密钥为key=b3ecb60efb7145bfb87e077c27e7c207,我有加密数据app_t={"referenceId":"324hweu23b23"}

现在,首先我将数据编码到base64,然后在密钥的帮助下进行ecnrypting。下面是我的代码:

function encDatafn(data,key){
 var base64_data=new Buffer(data).toString("base64");
var cipher = crypto.createCipher('AES-256-ECB', key); 
            var encdata = cipher.update(base64_data,'base64','utf8');
            return encdata+=cipher.final('utf8');
}

var encData=encDatafn(app_t,Key)
console.log(encData);

所以我得到的加密字符串是v��dic��0\��[�'�l��i�bp�H�f; 现在,当我试图解密它,因此它在下面不起作用的是解密代码:

function decdatafn(data,key){
            var dec_base64=new Buffer(JSON.stringify(data),"base64").toString();
            var decipher = crypto.createDecipher('AES-256-ECB', key);
            var decDataa = decipher.update(dec_base64,'base64','utf8');
            return decDataa+=decipher.final('utf8');
        }

        var decData=decdatafn(encData,key)
        console.log("decDataaa="+decData);

显示错误: Error: error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length

请告诉我这种形式的错误。

由于

0 个答案:

没有答案