1

使用onvif密码必须以某种方式加密。ONVIF Appicaltion Programmer's Guide on page 35中描述的方法。我还找到了如何在 PHP 中执行此操作,它看起来像这样:

$nonce      = pack('H*', mt_rand());
$passdigest = base64_encode(pack('H*', sha1($nonce . pack('a*', timestamp) . pack('a*', password))));

主要问题是我不知道所有字节操作是如何工作的,所以我需要一些帮助才能将这个 PHP 代码传输到 python 中......

4

1 回答 1

1

来自:https ://github.com/Pegax/pyOnvif

n64 = ''.join(SystemRandom().choice(string.letters + string.digits+string.punctuation) for _ in range(22))
nonce = base64.b64encode(n64)
#n64 = base64.b64decode(nonce)
pdigest= base64.b64encode(sha1(n64+created+self.password).digest())
于 2014-09-07T22:39:04.570 回答