我正在处理发送“GetDeviceInformation”的 ONVIF。这是必需的 wsse:UsernameToken。搜索权威数据后,有两个公式:
(1) by "ONVIF-Core-Specification-v241.pdf", "5.12.2.1 密码推导"
PE_UA = base64(HMAC_SHA-1(UA+P_UA,NEP+”ONVIF password”))
(2)通过WEB协议的soap
Digest = B64ENCODE( SHA1( B64DECODE( Nonce ) + Date + Password ) )
我很困惑!!哪一个是正确的?
此外,当我通过wireshark测试ONVIF测试工具时
我得到的XML:
<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>
好的,那我试着通过这些数据找出公式。
a> 用户名:“管理员”
b> 密码:“pass”(非熵)
c> 随机数:“TgBYFHxSc3Oo8yPzwnQn8A==”
d> 创建:“2014-06-20T04:41:45Z”
以某种方式获得最终密码:“ lu9ywjDwSt8oW7M4tMjCb50/xRg= ”
“nonce”可以由 Base64 转换,所以原始应该是“4E0058147C527373A8F323F3C27427F0”
我试过用
base64(SHA1("TgBYFHxSc3Oo8yPzwnQn8A==2014-06-12T04:03:45Zpass"))
或者
base64(SHA1("4E0058147C527373A8F323F3C27427F0==2014-06-12T04:03:45Zpass"))
但我仍然无法获得测试工具发送的密码为“lu9ywjDwSt8oW7M4tMjCb50/xRg=”
任何人都可以帮助我弄清楚 ONVIF 测试工具使用的确切公式是什么?
需要你的帮助!!!谢谢!!