2

我正在尝试使用 gSOAP 与支持ONVIF的网络摄像机通信,并且我需要一种方法来指定soap_wsse_add_UsernameTokenDigest 在散列密码时使用的时间。

目前我无法确保相机和我的客户端都具有正确的 NTP 时间同步。因此,我想采用python-onvif等工具使用的方法,并简单地将偏移量应用于生成 UsernameToken 所用的时间。无需身份验证即可检索相机的日期/时间,因此计算这样的偏移量是微不足道的。

我的问题是我看不到任何方法可以让soap_wsse_add_UsernameTokenDigest 使用除了计算密码哈希的当前时间之外的任何内容。

除了更改系统时钟之外,有什么方法可以更改soap_wsse_add_UsernameTokenDigest 使用的时间?

4

1 回答 1

0

看看soap_wsse_add_UsernameTokenDigest 的源代码就可以回答这个问题:不,没有办法指定时间或偏移量,因为它只是直接调用time(NULL)。

所以我的选择是修改soap_wsse_add_UsernameTokenDigest,自己计算哈希并调用soap_wsse_add_UsernameTokenText,或者找到一些方法来确保时间同步。

于 2017-04-17T18:32:45.140 回答