Tôi có một khóa công khai RSA trong PEM định dạng + PKCS # 1 (tôi đoán):Làm thế nào để đọc một khóa công khai RSA trong PEM + PKCS # 1 định dạng
-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBAJNrHWRFgWLqgzSmLBq2G89exgi/Jk1NWhbFB9gHc9MLORmP3BOCJS9k
onzT/+Dk1hdZf00JGgZeuJGoXK9PX3CIKQKRQRHpi5e1vmOCrmHN5VMOxGO4d+zn
JDEbNHODZR4HzsSdpQ9SGMSx7raJJedEIbr0IP6DgnWgiA7R1mUdAgMBAAE=
-----END RSA PUBLIC KEY-----
Tôi muốn nhận được SHA1 của phiên bản mã hóa ASN1 của nó bằng Python. Bước đầu tiên nên đọc phím này, nhưng tôi không thể làm điều đó trong PyCrypto:
>> from Crypto.PublicKey import RSA
>> RSA.importKey(my_key)
ValueError: RSA key format is not supported
các documentation of PyCrypto nói PEM + PKCS # 1 được hỗ trợ, vì vậy tôi đang bối rối. Tôi cũng đã thử M2Crypto, nhưng nó chỉ ra rằng M2Crypto không hỗ trợ PKCS # 1 nhưng chỉ X.509.
Nó được tạo thông qua PEM_write_bio_RSAPublicKey trong OpenSSL. Tôi tin rằng đó là một khóa PEM hợp lệ, và tôi đã đọc nó bằng python-rsa. –
Bắt đầu từ phiên bản 2.6, PyCrypto cũng có thể nhập các đối tượng khóa RsaPublic để mã ở trên không cần thiết nữa. – SquareRootOfTwentyThree
Sử dụng Python 3, giải mã ASN1 trả về byte, trong khi 'construct' cần ints. Thứ tự byte nào được sử dụng? –