网上没看到有python写的算支付宝公钥证书与根证书序列号得,只有java与php,我python怎么能没有呢 整上!
安装pyOpenSSL
pip install pyOpenSSL
# coding=utf-8
# author wangdada
import OpenSSL
import hashlib
import re
def md5(string):
return hashlib.md5(string.encode('utf-8')).hexdigest()
# 应用公钥证书序列号
def get_app_cert_cn(cert_str=None):
cert_str = cert_str or open("appCertPublicKey_2021001117612947.crt").read()
cert = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert_str)
try:
res = cert.get_signature_algorithm()
# 根据其他语言算法 应该剔除不是sha加密的部分python2 可以用r'sha.+WithRSAEncryption' 但是python3必须是b'sha.+WithRSAEncryption'
if not re.match(b'sha.+WithRSAEncryption', res):
return None
except:
return None
cert_issue = cert.get_issuer()
op = '