如何在 python 中读取(打开)ASN.1 文件
How do I read(open) an ASN.1 file in python
我想使用 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)?
你应该试试这个 Python-ASN1 encoder and decoder
。适用于 Python 2.6+ 和 3.3+。页面上的简短示例:
https://pypi.org/project/asn1/
确保在 pip install asn1
之前安装 pip install future
您正在将文件作为文本文件打开,这意味着 read
尝试使用 UTF-8 解码数据以便 return 一个 str
对象。
相反,将其作为二进制文件打开,这样 read
只需 return 一个 bytes
对象,而根本不会尝试解码数据。
der = open('...', 'rb').read()
我想使用 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)?
你应该试试这个 Python-ASN1 encoder and decoder
。适用于 Python 2.6+ 和 3.3+。页面上的简短示例:
https://pypi.org/project/asn1/
确保在 pip install asn1
pip install future
您正在将文件作为文本文件打开,这意味着 read
尝试使用 UTF-8 解码数据以便 return 一个 str
对象。
相反,将其作为二进制文件打开,这样 read
只需 return 一个 bytes
对象,而根本不会尝试解码数据。
der = open('...', 'rb').read()