PEM 공개 키의 10 진수 형식의 정확한 위치에 도달하려고합니다. Pem에 없습니다. 모든파이썬에서 PEM 형식의 "Decimal"로 정확하게 공개 키를 추출합니다.
먼저 나는 퍼블릭 키를 추출하는 "PEM, RFC2459을 가져 pyasn1_modules에서"내가 사용 그 후
from socket import socket
import ssl
from OpenSSL import SSL
import string
import traceback
import json
import re
for i in file_content:
final_list.append(i.strip())
file = open("SSL_out_put.json","w")
Temp_Priv_Key_list = []
counter = 1
for i in final_list[:4047]:
print counter
print i
counter = counter + 1
try:
x = ssl.get_server_certificate((i, 443))
Temp_Priv_Key_list.append({
'counter' : counter,
'i' : i,
'x' : x
})
content = json.dumps(Temp_Priv_Key_list, indent=3)
file.write(content)
Temp_Priv_Key_list=[]
except Exception , err:
pass
print Exception , err
file.close()
를 사용하여 내 PEM 인증서를 얻을. 이것은 공개 키에 대한 2 진 표현을 제공합니다. 십진수를 변환 한 후 나는 이것을 사용하고 싶지 않습니다. 내 experiance에서 pyasc1이 올바르게 작동하지 않음에 유의하십시오.
많은 연구 끝에이 코드가 여기에서 PEM 형식의 공개 키를 추출하는 것으로 나타났습니다.
from cryptography import x509
from cryptography.hazmat.backends import default_backend
with open("cert.pem", "rb") as f:
cert = f.read()
cert = str(cert)
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
key_data = (OpenSSL.crypto.dump_publickey(OpenSSL.crypto.FILETYPE_PEM,x509.get_pubkey()))
print key_data
이제 Pem 형식으로 내 게시 키가 있습니다. 다른 연구 후 나는 이것을 발견했지만이 결과만을 제공했다. 여전히 10 진수 나 2 진 형식의 공개 키를 추출 할 수 없습니다.
from Crypto.PublicKey import RSA
from base64 import b64decode
from Crypto.Util import asn1
with open("public_key.pem", "rb") as f:
cert = f.read()
#print cert
keyDER = b64decode(cert)
keyPub = RSA.importKey(keyDER)
print keyPub}
이 코드 전자, 당신에게 < _RSAobj @ 0x7f65559da320 N (2048)의 넣어 밖으로을 줄 것이다>
이 내 첫 번째 질문입니다. 미안 해요. 부탁하지 마세요. 내 두뇌는 지금 당장 이해할 수없는 쓰레기 인코딩을 가진 모든 종류의 직원으로 가득차 있습니다. 이 문제를 도와 줄 수있는 사람이 있습니까?
내가 정확히 http://lapo.it/asn1js/을 찾았지만 파이썬에서 사용할 수 없습니다. 내가 원하는 데이터를 추출하기 위해 셀레늄이나 치료법을 사용할 수 있습니다. 그러나 이것은 정말로 나를 죽일 것이다. 방법이 있어야 내가 시도하는 모듈 : 나는이 주제에 노력
그 모듈 :
from pyasn1_modules import pem, rfc2459
from pyasn1.codec.der import decoder
from cryptography import x509
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import rsa
#import pem
import socket, ssl
import OpenSSL
을 Btw는 나와 함께이 문제를 encountiring 누구를 위해. pycrypto 제대로 창문에 woring되지 않습니다 (내가 VCPython2.7.msi를 설치하더라도 "당신이 그것을 시도 해보니 무슨 뜻인지 알 수 있습니다.") 나는 가상 우분투로 전환합니다. 고맙습니다.