什么';s CouchDB附件';s md5摘要格式?

什么';s CouchDB附件';s md5摘要格式?,couchdb,md5,Couchdb,Md5,我试图使用我放在CouchDB上的附件的md5摘要,但我不明白它使用什么格式 { "_id":"ef467479af422db0c388fa00b3000d40", "_rev":"3-6d1015e7d25103180817136eefa9f942", "_attachments":{ "foo":{ "content_type":"application/octet-stream", "revpos":2, "digest":"md5-

我试图使用我放在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,我该如何使用它?

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

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

假设上述内容正确,则十六进制等效值为:

c8 36 ec d6 c7 1f 61 da aa 2e 9c 72 15 bd 60 17

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

new Buffer('yDbs1scfYdqqLpxyFb1gFw==', 'base64').toString('hex')
要转到另一个方向并从十六进制值创建摘要字符串,请执行以下操作:

new Buffer('c836ecd6c71f61daaa2e9c7215bd6017', 'hex').toString('base64')

就这样,谢谢你,现在我可以用了。我将尽快接受您的回答,对于如何在java中获得bas64 md5感兴趣的人: