Конференция "Сети" » ServerSocket и FGintRSA неправильная передача строки
 
  • Disen © (22.03.11 22:14) [0]
    Здравствуйте!
    Есть клиент, который с помошью FGint генерирует ключевую информацию и отсылает необходимые для шифрования данные:
    ClientSocket.Socket.SendText('CLT_'+RSAOpenKey+'_'+E);


    Сервер получает ключи, шифрует сессионный ключ и отсылает его клиенту:
    Base10StringToFGInt(estr, e);
       Base10StringToFGInt(ClientData, n);
       RSAEncrypt(SessionKey, e, n, EncripedKey);

       SS.Socket.Connections[0].SendText (EncripedKey);



    ак вот, при передаче зашифрованного ключа некоторые символы изменяются. То есть, допустим, отсылается строка:
    ¿Àþâ^e£Žz�Ýv•*è¸b�&# 402;0Üã[’�^Z?*7Zëï}¬X† ¾ÂKv

    а клиент получает:
    ?A?a^e??z?Yv?*e?b??0Ua[??^Z?*7Zei}¬X? ?AKv

    И соответственно, шифротекст иной и расшифровать правильно сессионный ключ не получается

    Каким образом можно решить проблему?

    З.Ы. Использую FGInt. При использовании ключа в рамках одного приложения расшифрование/зашифрование проходит успешно.
  • Slym © (23.03.11 06:39) [1]
    Disen ©   (22.03.11 22:14)
    стринг двухбайтовый? Дельфя какая? аля SizeOf(Char)=2?
    если равно 2 значед нужно переделать на однобайтовый стринг
  • Disen © (23.03.11 11:27) [2]
    Да, строка Unicode, Delphi 2010.

    SendText в качестве аргумента получает AnsiString. Каким образом можно передать Юникод строку через ServerSocket без потери данных?
  • DiamondShark © (23.03.11 12:09) [3]
    SendBuf
  • Disen © (23.03.11 13:18) [4]
    DiamondShark,
    спасибо! А вы не могли бы помочь - написать код, который бы отправлял строку. А то клиент у меня принимает 2 симовола всего... :(
  • clickmaker © (23.03.11 14:27) [5]
    SendBuf(PChar(EncripedKey)^, Length(EncripedKey))
 
Конференция "Сети" » ServerSocket и FGintRSA неправильная передача строки
Есть новые Нет новых   [134437   +27][b:0][p:0.001]