【问题标题】:Base64encode in node js节点js中的Base64encode
【发布时间】:2017-02-01 04:21:25
【问题描述】:

我知道不可能将一种编程语言翻译成另一种语言,但现在我正在尝试使用 nodejs 加密某些东西,并且在我使用的文档中,他们没有 nodejs 的示例,他们只有 PHP,

所以我的问题是如何编写这段代码

base64encode(hex(sha256("shared_secret")))

在 Nodejs 中

【问题讨论】:

标签: javascript php node.js


【解决方案1】:

也许这可以帮助你,但如果你想加密密码this will be more helpful I think

var crypto = require('crypto');
var hash = crypto.createHash('sha256').update(pwd).digest('hex').digest('base64');

【讨论】:

    【解决方案2】:

    如果您正在编写不需要支持 IE9 或更早版本的代码,那么您可以使用 btoa() 和 atob() 与 base64 编码进行转换。否则,请使用 Sunny 引用的函数。

    对于这些函数接受/返回什么,cmets 似乎有些混淆,所以……

    btoa() 接受一个“字符串”,其中每个字符代表一个 8 位字节 - 如果您传递的字符串包含不能用 8 位表示的字符,它可能会中断。如果您实际上将字符串视为字节数组,这不是问题,但如果您尝试做其他事情,那么您必须先对其进行编码。 atob() 返回一个“字符串”,其中每个字符代表一个 8 位字节——也就是说,它的值将介于 0 和 0xff 之间。这并不意味着它是 ASCII - 大概如果您使用此函数,您希望使用二进制数据而不是文本。

    function b64EncodeUnicode(str) {
        return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {
            return String.fromCharCode('0x' + p1);
        }));
    }
    
    b64EncodeUnicode('✓ à la mode'); // "4pyTIMOgIGxhIG1vZGU="
    b64EncodeUnicode('\n'); // "Cg=="
    

    https://scotch.io/tutorials/how-to-encode-and-decode-strings-with-base64-in-javascript https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-11
      • 2013-03-15
      • 2015-09-06
      • 1970-01-01
      • 2020-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多