7

我正在尝试使用我放在 CouchDB 上的附件的 md5 摘要,但我不明白它使用什么格式。

{
"_id":"ef467479af422db0c388fa00b3000d40",
"_rev":"3-6d1015e7d25103180817136eefa9f942",
"_attachments":{
    "foo":{
        "content_type":"application/octet-stream",
        "revpos":2,
        "digest":"md5-yDbs1scfYdqqLpxyFb1gFw==",
        "length":1952913,"stub":true }
    }
}

那个 md5 不是十六进制的,但它仍然是 ASCII,我该如何使用它?

4

2 回答 2

7

前缀后面的摘要部分md5-看起来像是 Base-64 格式。

如果用 Javascript 解析,该atob函数可以将其转换回二进制数据。

假设以上是正确的,那么十六进制等价物是:

c8 36 ec d6 c7 1f 61 da aa 2e 9c 72 15 bd 60 17
于 2012-12-21T12:08:57.367 回答
2

对于希望使用 nodejs 使用 couchdb 使用的摘要格式的任何人,您可以通过删除“md5-”前缀将 base64 编码的摘要转换为“正常”十六进制字符串,然后执行以下操作:

new Buffer('yDbs1scfYdqqLpxyFb1gFw==', 'base64').toString('hex')

反过来,从十六进制值创建摘要字符串:

new Buffer('c836ecd6c71f61daaa2e9c7215bd6017', 'hex').toString('base64')
于 2013-10-23T19:27:03.150 回答