Ошибка преобразования формата RSA DER в Python - PullRequest
0 голосов
/ 09 октября 2018

У меня есть этот кусок кода:

import Crypto
import Crypto.Random
from Crypto.Hash import SHA
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5
import binascii
import random

private_key_1 = "3082025a02010002818100a28fb311e4dec76207c224a0e4f56c8f65c06f844170b59adee22c2aac056b4788994545e2cbf6aaea89d1858eb46801a3884cdd53aa3d40e3d70fe30f9f5cc087ff73b7af470f79ceb896b165f58e6ba7645804167f3adbf8efb998e70a1e01da805e1a0b8d6d40bc604124172d5584413c235dfaa9c9d9e6f000143297cbeb0203010001027f28a3c420b516fcc1852f03f9354425dfb3906850a80b855b325d58ad5254087dd9a888a90109fca0be01b65fad4d6cb2fc2f17083de2516de787dc70e776efb8cbcacea2139bb340b88f06eea489ab05c21319b20b389b12e0f4dd6d839e0e03e0b526e822620932be9c1145663ca51d97914274f3fe213980c599c7fe0801024100b909b1b29616ed2ab10b41a77bf678980e4f9acb05cef95a7d852009481c2ae094872f1694f8d2cbf2605d61dd9500bb0b8127c5d6567de51b2f1b316a3f0751024100e0e75851903906dd6e6e57133c1dd795e4b14e247d05a8538b4ba0061abfac998b15108e516bec21aac4f43c5a911f6042ff937f4a86f71643c47aac6918c87b0241009927e9fa3c7aeb816b9b3a938b6a7d74b65bb36f19f6afb3f3b30dca40f27796fdb94b0370f8e759c1db391869e7b3b64617083a2b67d9ba999e8aee82d77a910240296d73ef5249aee20afd783caace346ffff849149f92f336b069f5c82a15348df3f8a55c11d377639c393b6402aac8c4ca929970d1219b521699929f3f9cb91102407d9c020ff5ce667046bc064d76c43ded59e36ea60bdb0040144c6ed6e6aee7d54200c1cb6e7b2deabdb7dd73f3638f4b2d15d06d2e9aeb1db4e240c065e594a8"
private_key_2 = "3082025a02010002818100a28fb311e4dec76207c224a0e4f56c8f65c06f844170b59adee22c2aac056b4788994545e2cbf6aaea89d1858eb46801a3884cdd53aa3d40e3d70fe30f9f5cc087ff73b7af470f79ceb896b165f58e6ba7645804167f3adbf8efb998e70a1e01da805e1a0b8d6d40bc604124172d5584413c235dfaa9c9d9e6f000143297cbeb0203010001027f28a3c420b516fcc1852f03f9354425dfb3906850a80b855b325d58ad5254087dd9a888a90109fca0be01b65fad4d6cb2fc2f17083de2516de787dc70e776efb8cbcacea2139bb340b88f06eea489ab05c21319b20b389b12e0f4dd6d839e0e03e0b526e822620932be9c1145663ca51d97914274f3fe213980c599c7fe0801024100b909b1b29616ed2ab10b41a77bf678980e4f9acb05cef95a7d852009481c2ae094872f1694f8d2cbf2605d61dd9500bb0b8127c5d6567de51b2f1b316a3f0751024100e0e75851903906dd6e6e57133c1dd795e4b14e247d05a8538b4ba0061abfac998b15108e516bec21aac4f43c5a911f6042ff937f4a86f71643c47aac6918c87b0241009927e9fa3c7aeb816b9b3a938b6a7d74b65bb36f19f6afb3f3b30dca40f27796fdb94b0370f8e759c1db391869e7b3b64617083a2b67d9ba999e8aee82d77a910240296d73ef5249aee20afd783caace346ffff849149f92f336b069f5c82a15348df3f8a55c11d377639c393b6402aac8c4ca929970d1219b521699929f3f9cb91102407d9c020ff5ce667046bc064d76c43ded59e36ea60bdb0040144c6ed6e6aee7d54200c1cb6e7b2deabdb7dd73f3638f4b2d15d06d2e9aeb1db4e240c065e594a7"

# Instances
aux_private_key_1 = RSA.importKey(binascii.unhexlify(private_key_1))
aux_private_key_2 = RSA.importKey(binascii.unhexlify(private_key_2))

# Ascii
result_private_key_1 = binascii.hexlify(aux_private_key_1.exportKey(format='DER')).decode('ascii')
result_private_key_2 = binascii.hexlify(aux_private_key_2.exportKey(format='DER')).decode('ascii')

if result_private_key_1 == result_private_key_2:
    print("Private keys are equal")
else:
    print("Private keys are NOT equal")

Как видите, обе клавиши отличаются по последнему номеру, но в выводе говорится, что они обе равны:

Private keys are equal

Может ли кто-нибудь помочь мне, чтобы сделать:

  • result_private_key_1 отличается от result_private_key_2
  • result_private_key_1 равно для private_key_1
...