Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Node.js中的加密和解密大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试加密并相应地解密字符串.

当我将编码方案指定为’utf-8’时,我得到了预期的结果:@H_675_7@

function encrypt(text) {
        var cipher = crypto.createCipher(algorithm,password)
        var crypted = cipher.update(text,'utf8','hex')
        crypted += cipher.final('hex');
        return crypted;
    }

    function decrypt(text) {
        var decipher = crypto.createDecipher(algorithm,password)
        var dec = decipher.update(text,'hex','utf8')
        dec += decipher.final('utf8');
        return dec;
    }

//text = 'The big brown fox jumps over the lazy dog.'

Node.js中的加密和解密

@H_675_7@

但是当我试图用’base-64’做它时,它给了我意想不到的结果:@H_675_7@

function encrypt(text) {
    var cipher = crypto.createCipher(algorithm,password)
    var crypted = cipher.update(text,'base64','hex')
    crypted += cipher.final('hex');
    return crypted;
}

function decrypt(text) {
    var decipher = crypto.createDecipher(algorithm,password)
    var dec = decipher.update(text,'base64')
    dec += decipher.final('base64');
    return dec;
}

Node.js中的加密和解密

@H_675_7@

我无法理解为什么base-64编码方案不接受空格和’.’格式正确.
如果有人知道这一点,请帮助我更好地理解这一点.
任何帮助表示赞赏.@H_675_7@

解决方法

如果我理解正确的话,你用两个相同的字符串调用加密方法:大棕狐跳过懒狗.事实是,cipher.update的签名如下所示:

cipher.update(data [,input_encoding] [,output_encoding])@H_675_7@

因此在第二种加密方法中,您使用’base64’作为输入编码.并且您的字符串不是base64编码的. Base64不能有空格,句号等.@H_675_7@

您可能希望首先在base64中对其进行编码.你可以在这里看到答案,看看如何做到这一点:
How to do Base64 encoding in node.js?@H_675_7@

然后,您可以使用第二种加密方法.解密后,您将再次收到base64编码的字符串,并且您必须对其进行解码.上面的问题还说明了如何从base64解码.@H_675_7@

大佬总结

以上是大佬教程为你收集整理的Node.js中的加密和解密全部内容,希望文章能够帮你解决Node.js中的加密和解密所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。