2013-12-11 101 views
5

在MongoDb中使用可以將用戶添加到數據庫進行訪問控制。用戶可以使用插入:MongoDB用於散列數據庫用戶密碼的散列函數是什麼?

db.addUser({ user: "aaaa", pwd: "1234", roles: [...]}) 

和插入的用戶:

{ 
    "user" : "aaa", 
    "pwd" : "08ccdf34dbb3ca05dcc195e30994b628", 
    "roles" : [ 
     "userAdminAnyDatabase" 
    ], 
    "_id" : ObjectId("52a88b45965c4e7ad46bb97b") 
} 

什麼功能的MongoDB用來計算/哈希pwd關鍵?

回答

4

The pwd is the hex encoding of MD5(username + ":mongo:" + password_text).

從官方documentation

結果與您在json中顯示的散列不一致,但我認爲您在添加"aaaa"時取代了實際的用戶名和密碼,但檢索"aaa"

+0

謝謝!你的假設是正確的。我沒有替換用戶名。 :) –

+0

當我嘗試在mongo shell中使用MD5(username +「:mongo:」+ password_text)時,我得到了 '錯誤:MD5字符串必須有32個字符' – Guig