我正在開發「GetDeviceInformation」的ONVIF。這是所需的wsse:UsernameToken。 權威搜索數據之後,有兩個faormula:ONVIF的公式是什麼#PasswordDigest
(1)由 「ONVIF核-規格-v241.pdf」, 「5.12.2.1密碼導出」
由PE_UA = base64(HMAC_SHA-1(UA+P_UA,NEP+」ONVIF password」))
(2) WEB協議皁
Digest = B64ENCODE(SHA1(B64DECODE(Nonce) + Date + Password))
我很困惑!!哪一個是正確的?
而且,當我通過Wireshark的
的XML作爲我測試了ONVIF測試工具:
<wsse:UsernameToken> <wsse:Username>admin</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">lu9ywjDwSt8oW7M4tMjCb50/xRg=</wsse:Password> <wsse:Nonce>TgBYFHxSc3Oo8yPzwnQn8A==</wsse:Nonce> <wsu:Created>2014-06-20T04:41:45Z</wsu:Created> </wsse:UsernameToken>
OK,然後我試圖通過這些數據找出公式。
一個>用戶名:「管理員」
b>密碼:「通過」(未熵)
C>隨機數:「TgBYFHxSc3Oo8yPzwnQn8A ==」
d> created:「2014-06-20T04:41:45Z」
不知何故,升密碼: 「lu9ywjDwSt8oW7M4tMjCb50/XRG =」
的 「現時」 可以被轉換的Base64使得原本應該是 「4E0058147C527373A8F323F3C27427F0」
我已經嘗試使用
base64(SHA1("TgBYFHxSc3Oo8yPzwnQn8A==2014-06-12T04:03:45Zpass"))
或
base64(SHA1("4E0058147C527373A8F323F3C27427F0==2014-06-12T04:03:45Zpass"))
但我仍然無法獲得由測試工具發送的密碼爲「lu9ywjDwSt8oW7M4tMjCb50/xRg =」
任何人都可以幫我弄清楚ONVIF測試工具使用的確切公式是什麼?
需要你的幫助!謝謝!!
謝謝!這幫助我弄清楚了我的問題。爲了未來其他人的利益,我已經將示例代碼放在一起:https://gist.github.com/lsowen/1a46f9d5fc026e6efc7d – lsowen