使用pythonregex从这个字符串中提取证书、私钥和证书链

2024-06-12 15:25:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这条线(很明显,我从这三条线中剪掉了一些线,以免暴露自己)。 我希望python从中提取:

中级证书

钥匙

公共证书

并将它们写入3个单独的文件中。在

我试着用这个正则表达式,但它把所有的东西放在一起。在

匹配1=关于芬德尔(r“中间证书((.|\n)*)(----结束证书----”,strsecret,re.多行)在

    (GetSecretResult){
Errors = ""
Secret =
  (Secret){
     Name = "new cert"
     Items =
        (ArrayOfSecretItem){
           SecretItem[] =
              (SecretItem){
                 Value = "new cert"
                 Id = 1470
                 FieldId = 334
                 FieldName = "E-Mail"
                 IsFile = False
                 IsNotes = False
                 IsPassword = False
                 FieldDisplayName = "E-Mail"
              },
              (SecretItem){
                 Value = "no password"
                 Id = 1471
                 FieldId = 335
                 FieldName = "Password"
                 IsFile = False
                 IsNotes = False
                 IsPassword = True
                 FieldDisplayName = "Password"
              },
              (SecretItem){
                 Value = None
                 Id = 1472
                 FieldId = 336
                 FieldName = "Account ID"
                 IsFile = False
                 IsNotes = False
                 IsPassword = False
                 FieldDisplayName = "Account ID"
              },
              (SecretItem){
                 Value = None
                 Id = 1473
                 FieldId = 337
                 FieldName = "Sign-in Link"
                 IsFile = False
                 IsNotes = False
                 IsPassword = False
                 FieldDisplayName = "Sign-in Link"
              },
              (SecretItem){
                 Value = "Intermediate cert

-----BEGIN CERTIFICATE-----
MIIEiTCCA3GgAwIBAgIQAlqK7xlvfg1sIQSyGuZwKzANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0xNzExMDYxMjIzNTJaFw0yNzExMDYxMjIzNTJaMFwxCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xGzAZBgNVBAMTElRoYXd0ZSBSU0EgQ0EgMjAxODCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAMoIXuVTipccHkMvtoqnVumLhEOorJ16VYJ6FEuGty+P
Up8cyrEgW2+6It2mnC142ukGCE6+E6bry7s+uQUMPkrh8DIfE071BsVHc4k+gKOL
YLVQA+x9HONZXx9vvy8pl9bu+NVYWKGxzGxBK0CBozmVUCeXQPJKPTZleYuNM18p
U1P8Xh1CDguM+ZEoew==
-----END CERTIFICATE-----


Key

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAwvZA860zwvDZhCQNFwB0Jzg5EQ268/1Hzf3w4RJJKv5gi/v3
7pXEOJ10bpasoL3+8kIIYhDRQ83V0svf11qf3eJy0prp/mBjSGTcy5yJdixMfyAZ
AQ9/fPYkdt91leCm0JW9DnlWyIp0vwHV1Hu1vHyYtZ7yyE//yZHTLsyRFXPJ9bP6
JEL/w6HIL4thHqt5cEExmTmlMmEYD+6CTBGxwy3dqi+0yqMjk7yR1+pNql7oUrO2
7jj/QYAcjp34jysYBkyiMC4OQA8OXwEQt0uH3IPULhu0nWr5xD+wNlJo8VE4uQep
aEbjuAoSW/wZQDn/8qQIhsrg1jc+L280Qh1PY1udmMTZhUrijkO1
-----END RSA PRIVATE KEY-----

Public cert

-----BEGIN CERTIFICATE-----
MIIGKDCCBRCgAwIBAgIQDPM2aqTO5b54DhFedbNBbjANBgkqhkiG9w0BAQsFADBc
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMRswGQYDVQQDExJUaGF3dGUgUlNBIENBIDIwMTgwHhcN
MTgwOTEyMDAwMDAwWhcNMTkxMTE3MTIwMDAwWjCBmTELMAkGA1UEBhMCVVMxETAP
BgNVBAgTCFZpcmdpbmlhMRcwFQYDVQQHEw5UeXNvbidzIENvcm5lcjEcMBoGA1UE
ChMTTWljcm9TdHJhdGVneSwgSW5jLjEcMBoGA1UECxMTSW5mb3JtYXRpb24gU3lz
vo3WIr8Ja9XFqfg/GHzMYwjYG/jkzmdEV4fke3LkTaYFtblAvE3hU4UXZWnT1y4W
vXySQ7BvTxgxRTUIWRN+qPJK6UsmNU4HizBjktCjxq6xqBdE55jsda7hqDg=
-----END CERTIFICATE-----
"
                 Id = 147274
                 FieldId = 366
                 FieldName = "Notes"
                 IsFile = False
                 IsNotes = True
                 IsPassword = False
                 FieldDisplayName = "Notes"
              },
        }
     Id = 31346
     SecretTypeId = 6055
     FolderId = 586
     IsWebLauncher = False
     Active = True
     CheckOutMinutesRemaining = None
     IsCheckedOut = None
     CheckOutUserDisplayName = None
     CheckOutUserId = None
     IsOutOfSync = None
     IsRestricted = False
     OutOfSyncReason = None
  }
}

Tags: noneidfalsetruecertvaluecertificatefieldname
1条回答
网友
1楼 · 发布于 2024-06-12 15:25:12

请尝试以下正则表达式:( -BEGIN .+? -(?s).+? -END .+? -) . 你可以试试看here。这是通过在开始和结束之后进行延迟匹配,以及在两者之间进行延迟匹配来实现的。在

相关问题 更多 >