Фрилансеры предложат решение вашей задачи уже через несколько минут!
Публикация заказа не займет много времени.
Иван К.
35 лет, Россия
12 лет в сервисе
Был онлайн 4 месяца назад

Перенести код из Delphi в c# .net 2.0.
Если не можете собрать код - лучше не писать.

uses SysUtils, Classes, Wcrypt2;
...
function EncodeStr(inText:string): string;
var
  Hash: HCRYPTHASH;
  Key: HCRYPTKEY;
  BufLen, DataLen: DWORD;
  Str: String;
  I: Integer;
begin
  CryptAcquireContext(@Prov,nil,nil,PROV_RSA_FULL,CRYPT_VERIFYCONTEXT);
  Stream:=TMemoryStream.Create;
  try
    CryptCreateHash(Prov,CALG_SHA,0,0,@Hash);
    CryptHashData(Hash,PByte(Password),Length(Password),0);
    CryptDeriveKey(Prov,CALG_RC2,Hash,0,@Key);
    Stream.Clear;
    Stream.WriteBuffer(Pointer(inText)^,Length(inText));
    DataLen:=Length(inText);
    BufLen:=Length(inText);
    CryptEncrypt(Key,0,true,0,nil,@BufLen,0);
    Stream.SetSize(BufLen);
    CryptEncrypt(Key,0,true,0,PByte(Stream.Memory),@DataLen,BufLen);
    SetLength(Str,BufLen);
    Stream.Seek(0,soFromBeginning);
    Stream.ReadBuffer(Pointer(Str)^,BufLen);
    Result:=Str;
    CryptDestroyKey(Key);
    CryptDestroyHash(Hash);
  finally
    Stream.Free;
    CryptReleaseContext(Prov,0);
  end;
end;
function DecodeStr(inText:string): string;
var
  Hash: HCRYPTHASH;
  Key: HCRYPTKEY;
  DataLen: DWORD;
  Str: String;
begin
  CryptAcquireContext(@Prov,nil,nil,PROV_RSA_FULL,CRYPT_VERIFYCONTEXT);
  Stream:=TMemoryStream.Create;
  try
    CryptAcquireContext(@Prov,nil,nil,PROV_RSA_FULL,CRYPT_VERIFYCONTEXT);
    CryptCreateHash(Prov,CALG_SHA,0,0,@Hash);
    CryptHashData(Hash,PByte(Password),Length(Password),0);
    CryptDeriveKey(Prov,CALG_RC2,Hash,0,@Key);
    DataLen:=Length(inText);
    Str := Copy(inText, 0, DataLen);
    CryptDecrypt(Key,0,true,0,PByte(Str),@DataLen);
    Result := Copy(Str, 0, DataLen);
    CryptDestroyKey(Key);
    CryptDestroyHash(Hash);
  finally
    Stream.Free;
    CryptReleaseContext(Prov,0);
  end;
end;
Для проверки кода можно использовать 
const
  Password: String = '1234567890';
Кодировка EncodeStr('1') = '®э_ѓ°Ќ°0'
На вход методов в c# подаётся строка.

Выбранный исполнитель

Дмитрий Беляев
38 лет, Россия
12 лет в сервисе
Был онлайн 1 час назад
4 месяца назад

$10

1 день

ТОП-5 — Системное программирование
Отзыв заказчика
Быстро, без лишних вопросов, всё как я просил.
Отзыв фрилансера
Хороший заказчик. Четкое ТЗ, быстрая оплата. Рекомендую к сотрудничеству.