В документе я увидел код ниже:Что такое эквивалентный код python для RSA.SignData в .NET?
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(“<RSAKeyValue><Modulus>oQRshGhLf2Fh...”);
byte[] signMain = rsa.SignData(Encoding.UTF8.GetBytes(data), new
SHA1CryptoServiceProvider());
sign = Convert.ToBase64String(signMain);
Кажется, что это первые признаки данных с RSA
и SHA1
, затем base64 закодировать его. Он считывает ключ RSA из XML.
Код я использовал для подписи данных в Python, как показано ниже:
key = open('priv_key.pem', "r").read()
rsakey = RSA.importKey(key)
signer = PKCS1_v1_5.new(rsakey)
digest = SHA256.new()
digest.update(data)
sign = signer.sign(digest)
Прежде всего я преобразовал XML
к PEM
затем используется код, указанный выше, чтобы подписать данные.
Проблема заключается в том, что преобразование .NET
отличается от указанного в Python
. Это не работает так, как я хотел. Как я могу точно преобразовать код .NET
в python? Что здесь, что я делаю неправильно.
Я использовал SHA1, но результат был другим. – ALH