サービスをPython 2.7からPython 3.5に移行し、RSA暗号化/復号化を使用して別のサービスと通信しています。rsaモジュールとm2cryptoからRSA署名が異なる
パイソン(V2.7)m2crypto(0.25.1)<正しい署名>
key = M2Crypto.RSA.load_key(private_key)
digest = hashlib.sha1(bytes(cipher_text, encoding="UTF-8")).hexdigest()
signature = hexlify(key.private_encrypt(digest, M2Crypto.RSA.pkcs1_padding))
パイソン(V3.5)、RSA(v3.4.2)
pri_key = rsa.PrivateKey.load_pkcs1(private_key)
signature = hexlify(rsa.sign(cipher_text.encode(), pri_key, "SHA-1"))
上記のコードで生成された署名が異なります。これらのパッケージの違いは何ですか?
しかし、2番目のサービスがm2cryptoコードから生成された署名を受け入れる場合、どうすればよいでしょうか? – infiQuanta
このサービスをご利用の場合は、それに応じて変更することをお勧めします。可能であれば、私はあなたに 'private_encrypt'を続けるしかないと思います。 – pedrofb
代替オプションは、https://gitlab.com/m2crypto/m2crypto/merge_requests/65を終了させるのに役立ちます。あなたは移植する必要はありませんM2Cryptoのうち;しかし、私は今OpenSSL 1.1.0のサポートに取り組んでいます。そのため、そのブランチの主なリベースは期待されています。 – mcepl