要使用onvif密码,必须以某种特定的方式加密。第35页上的ONVIF Appicaltion Programmer's Guide中描述的方法。我还发现了如何在PHP中执行此操作,它看起来像这样:

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


主要问题是我不知道所有字节操作如何工作,因此我需要一些帮助来将此PHP代码传输到python中。

最佳答案

来自: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())

关于php - 如何在python中为onvif进行密码加密?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22988372/

10-12 14:23