문제

내용에 다음과 같은 구조를 갖는 RSA PubKey.dat (거의 분명한 점)을 얻었습니다.

  • 약 1024 비트의 ASN1 정수 (모듈러스)
  • ASN1 정수 (지수)
  • 256 바이트 (서명)의 블로브

"---- 시작 ---"이상과 같은 태그가 없습니다. 순수한 16 진수 값.

der/pem/etc 인 경우 형식을 식별하는 방법이 있으므로 C ++에서 Python Crypto 라이브러리 또는 Crypto ++로 열 수 있습니까?

(또는 확인할 공개 표준 구조 이름과 일치하는 경우)

m2crypt가로드 할 수 없기 때문에 PEM이 아닌 것 같습니다.

미리 감사드립니다.

도움이 되었습니까?

해결책

Pem-Encoding에는 필수 형식이 있습니다.

-----BEGIN typeName-----
base64 of DER value
-----END typeName-----

공개 키의 경우 typename = "Public Key"(AFAIR)를 위해 다음과 같은 정규 표현식으로 확인하기가 매우 쉽습니다.

/-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----/

PEM이 아니라면 보통 평범한 Der입니다.

ASN.1 시퀀스의 DER 표현은 항상 0x30으로 시작하므로 일반적으로 ASN.1 시퀀스 (대부분의 복잡한 값은 시퀀스입니다). 첫 번째 바이트 : 0x30이면 Der로 디코딩하고 그렇지 않으면 PEM으로 디코딩합니다.

ASN.1 데이터를 빠르게 사용하여 확인할 수 있습니다 내 자신의 OpenSource ASN.1 파서 (모든 클라이언트 측 JavaScript이므로 데이터가 표시되지 않습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top