首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将google云存储md5哈希解码为Node中哈希生成器生成的字符串

如何将google云存储md5哈希解码为Node中哈希生成器生成的字符串
EN

Stack Overflow用户
提问于 2020-04-09 15:24:57
回答 1查看 1.1K关注 0票数 0

谷歌云存储为md5提供了以base64编码的对象的散列。H0m5T/tigkNJLqL6+z9A7Q==就是一个例子。我尝试使用btoa()来转换它,但是这会导致I9O{bCI."z{?@m而不是预期的b1f4f9a523e36fd969f4573e25af4540

我得到了File.metadata.md5Hash描述的这里字符串

有没有办法将base64 -> H0m5T/tigkNJLqL6+z9A7Q==转换为node.js中的字符串-> b1f4f9a523e36fd969f4573e25af4540

供参考的代码:

代码语言:javascript
复制
async function getAllmd5()
{
  const {Storage} = require('@google-cloud/storage');
  const storage = new Storage();
  var bucket = storage.bucket('example');

  var [files] = await bucket.getFiles();

  for (var i = 0; i < files.length; i++)
  {
    console.log(Buffer.from(files[i].metadata.md5Hash, 'base64').toString("ascii"))
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-09 19:30:24

看来我的思维过程不对。

我在想:获取数据->获取哈希->编码到base64

问题不在于它是如何运作的。您需要做的是:获取数据、->、get哈希作为base64。通常,一个程序会将它输出为十六进制,这在大多数情况下都很好,但在谷歌的base64 md5中,它与十六进制不同。

如何将md5哈希作为base64获取的示例:

代码语言:javascript
复制
//The modules we need:
const { md5 } = require('crypto-md5');
const { fs } = require('fs');

var filename "example.txt";

//Read the file content
var filecontent = fs.readFileSync(path.join(__dirname, filename));

var hash = md5(filecontent, 'base64'); //Generate the md5 AS base64
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61124609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档