Python Ecdsa получить закрытый и открытый ключ - PullRequest
0 голосов
/ 07 ноября 2019

Этот вопрос может показаться простым для тех, кто знает библиотеку. Как я могу получить фактическое значение закрытого и открытого ключей? У меня есть:

private_key = SigningKey.generate(SECP256k1)
public_key = private_key.get_verifying_key()
print("private_key:")
print(private_key)
print("public_key:")
print(public_key)

И он печатает:

generate_keys () private_key: public_key: VerifyingKey.from_string (b '\ x029q \XFD \ xE9 \ x1dL \ xc0 \ Xab \ XB1 \ xd2GG \ xef8 \ XCB \ x89 \ xce \ Xbb \ xa8 \ x10 * \ РФА \ XDA \ x0c \ x92 \ x12 \ xa5 \ xa0 \ x81 \ ХеР \ X07 \ x9e', SECP256k1, sha1) (, VerifyingKey.from_string (b' \ x029q \ xfd \ xe9 \ x1dL \ xc0 \ xab \ xb1 \ xd2GG \ xef8 \ xcb \ x89 \ xce \ xbb \ xa8 \ x10 * \ xfa \ xda \x0c \ x92 \ x12 \ xa5 \ xa0 \ x81 \ xef \ x07 \ x9e ', SECP256k1, sha1))

Мне нужны реальные значения private_key и public_key,Как мне их получить?

1 Ответ

1 голос
/ 07 ноября 2019

Вы сгенерировали закрытый и открытый ключи правильно. Теперь у вас есть экземпляры классов. Эти экземпляры не обязательно печатаются так, как вы ожидаете - я думаю, что это ваша единственная проблема.

Если вы хотите увидеть формат PEM, вы должны сделать это:

private_key = SigningKey.generate(SECP256k1)
public_key = private_key.get_verifying_key()
print("private_key:")
print(private_key.to_pem())
print("public_key:")
print(public_key.to_pem())

Для формата DER, используйте to_der () . Для необработанных байтов используйте to_string () .

Если вы сообщаете ключ кому-то, кошельку, openssl и т. Д., Вам, вероятно, нужен формат PEM.

...