首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成的校验和md5值不匹配

生成的校验和md5值不匹配
EN

Stack Overflow用户
提问于 2018-07-10 05:35:08
回答 1查看 851关注 0票数 0

我在我的后台使用md5sum来计算我上传到S3的文件的md5校验和,我在节点js加密模块中使用lambda来流式传输内容,并使用s3参数的指定字节范围来计算md5。

然而,当我流式传输整个文件时,md5与我用md5sum工具计算的结果相匹配,但是当我在md5sum和s3范围参数上指定相同的字节范围时,结果md5是不同的?

有没有人能解释为什么会这样?任何帮助都是非常感谢的。谢谢!

下面是来自lambda的md5计算:

代码语言:javascript
复制
let s3params = {
    Bucket: 'bucket',
    Key: filename.toString(),
    Range: "bytes=0-1073741824"
};
let hash = crypto.createHash('md5');
let stream = s3.getObject(s3params).createReadStream();
stream.on('data', (data)=>{
    hash.update(data);
}
);

stream.on('end', ()=>{
    var digest = hash.digest('hex');
    console.log("this is md5 value from digest: " + digest);
    callback(null, digest);
    digest = digest.toString().replace(/[^A-Za-z 0-9 \.,\?""!@#\$%\^&\*\(\)-_=\+;:<>\/\\\|\}\{\[\]`~]*/g, '');
});

下面是我的bash脚本中来自md5sum的md5计算:

代码语言:javascript
复制
bigchecksum=$(head -c 1073741824 ${file} | md5sum | cut -d ' ' -f 1)

输出为d61b42882135eebb449fc3904dc708b2

EN

回答 1

Stack Overflow用户

发布于 2018-07-11 04:25:48

解决了这个问题,S3参数报头上的字节范围应该是0-1073741823而不是0-1073741824,然后md5将匹配md5sum输出

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51254339

复制
相关文章

相似问题

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