C# для Python RSA реализацииC#

Место общения программистов C#
Ответить
Anonymous
 C# для Python RSA реализации

Сообщение Anonymous »

Просто пытаюсь переписать этот код C# в Python.
Server Отправить открытый ключ (модуль, экспонент), необходимо шифровать его с помощью PKCS1. CS PrettyPrint-Override ">

Код: Выделить всё

using (TcpClient client = new TcpClient())
{
await client.ConnectAsync(ip, port);
using (NetworkStream stream = client.GetStream())
{
await App.SendCmdToServer(stream, "auth", this.Ver.ToString().Split('.', StringSplitOptions.None));

byte[] modulus = new byte[256];
int num2 = await stream.ReadAsync(modulus, 0, modulus.Length);
byte[] exponent = new byte[3];
int num3 = await stream.ReadAsync(exponent, 0, exponent.Length);

this.ServerRsa = RSA.Create();
this.ServerRsa.ImportParameters(new RSAParameters()
{
Modulus = modulus,
Exponent = exponent
});

using (MemoryStream data = new MemoryStream())
{
using (BinaryWriter writer = new BinaryWriter((Stream) data))
{
writer.Write(string1);
writer.Write(string2);
await App.SendDataToServer(stream, this.ServerRsa.Encrypt(data.ToArray(), RSAEncryptionPadding.Pkcs1));
}
}
}
}
Все работает нормально, за исключением зашифрованного результата Python.
Я попробовал с RSA и pylyptodome , вообще не повезло, сервер возвращает отклонение .
попробовал что -то подобное ()

Код: Выделить всё

server_rsa = rsa.newkeys(2048)[0]
server_rsa.n = int.from_bytes(modulus, byteorder='big')
server_rsa.e = int.from_bytes(exponent, byteorder='big')
data = (string1 + string2).encode()
encrypted_data = rsa.encrypt(data, server_rsa)
< /code>
или это (pycryptodome
)

Код: Выделить всё

pubkey = construct((int.from_bytes(modulus, 'big'), int.from_bytes(exponent, 'big')))
cipher = PKCS1_v1_5.new(pubkey)
encrypted_data = cipher.encrypt(data)
Есть ли какая -то специальная реализация Python RSA, которая просто не работает с C#, или наоборот?


Подробнее здесь: https://stackoverflow.com/questions/794 ... -implement
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»