如何在Python中对ONVIF进行密码加密?
要使用 onvif
,密码必须以特定的方式进行加密。这个方法在 ONVIF 应用程序开发者指南 的第35页有详细说明。我还找到了一种在 PHP 中实现这个的方法,代码大概是这样的:
$nonce = pack('H*', mt_rand());
$passdigest = base64_encode(pack('H*', sha1($nonce . pack('a*', timestamp) . pack('a*', password))));
我主要的问题是我不太明白这些字节操作是怎么回事,所以我需要一些帮助,把这个 PHP 代码转换成 Python。
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())