我想用python获取证书序列号:
der = open('/Users/me/MyApp/Payload/codesign0').read()```
cert = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, der
cert.get_serial_number()
不幸的是,它在第一行失败了:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x82 in position 1: invalid start byte
如何在Python中读取ASN.1文件格式(DER)?
3条答案
按热度按时间3gtaxfhh1#
您将文件作为文本文件打开,这意味着
read
尝试使用UTF-8解码数据以返回str
对象。相反,将其作为二进制文件打开,这样
read
就可以返回一个bytes
对象,而根本不需要对数据进行解码。x8goxv8g2#
你应该试试这个
Python-ASN1 encoder and decoder
。适用于Python 2.6+和3.3+。第页上的简短示例:https://pypi.org/project/asn1/
确保在
pip install asn1
之前安装pip install future
yhuiod9q3#
PyOpenSSL已被弃用,因此可能需要考虑使用cryptography模块