节点js中的Base64encode

时间:2016-09-23 10:28:15

标签: javascript php node.js

我知道将编程语言转换为另一种编程语言是不可能的,但现在我尝试使用nodejs加密某些东西,并且在使用它们的文档中,他们没有一个nodejs的例子,他们只有PHP,

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

base64encode(hex(sha256("shared_secret")))
Nodejs中的

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

关于这些功能接受/返回的评论似乎有些混淆,所以......

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