Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Перенести код из 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# подаётся строка.

5 лет назад
AITK
Иван 
40 летРоссия
17 лет в сервисе
Был
2 года назад
Выбранный исполнитель
BDEsoft
43 годаРоссия
17 лет в сервисе
Был
3 месяца назад
5 лет назад
$10
1 день
Быстро, без лишних вопросов, всё как я просил.
Хороший заказчик. Четкое ТЗ, быстрая оплата. Рекомендую к сотрудничеству.
  • Похожие заказы
  • Всем привет, нужен автоматический бот по накрутке прослушек в апл музик / спотифай и шазаме *цель  - делать 100  тыс прослушек в день, все что нужно для этого купим. *по цене за выполнение этой задачи договоримся, *все кто ...

    Закрыт
    5 лет назад
  • На Web интерфейсе необходимо создать систему учета сдачи в аренду оборудования. Должно быть: 1. Несколько ролей сотрудников (менеджер, логист, кладовщик, администратор, юрист) с различными правами, инструментами работы и разделами видимой информации. 2. Каталог оборудовани с артикулами, названием, себестоимостью, ценой, ...

    Закрыт
    5 лет назад
  • Добрый день, требуется человек которые разбирается в сервисе [url=https://www.fl.ru/a.php?href=http%3A%2F%2Fwww.getcourse.ru%2F]www.getcourse.ru/[/url] необходимо настроить следующие вещи:   1) Настроить автовебинар   2) Настроить определенное количество ботов на автовебинаре   3) Подключить дополнительные сервисы в виде смс рассылки и email маркетинга   Более детальное ТЗ предоставим при личном общении. ...

    Закрыт
    5 лет назад
  • Знания Laravel В первую очередь необходима реализация аутентификации пользователей (middleware - регистрация, авторизация, разграничение доступа -роли/привилегии) Знание SQL - написание запросов среднего уровня сложности (работа с MySql)

    Закрыт
    5 лет назад
  • [table]ЗадачаЗа готовым сайтом на PHP/mySQL надо развернуть/сделать админку, главная функция которой, на данный момент - управление ежедневыми рассылками емейлов по базе пользователей. Пользователей 10,000 и более, все их данные лежат в одной таблице.  Каждая рассылка - ...

    Закрыт
    5 лет назад
  • Решить пару задач: Срок до 19.01.2019 9:00 по мск Задача 1. Для данного массива numpy вывести все его элементы с нечетными индексами. Например, массив numpy: a = [1, 2, 3, 4, 5]. Поскольку нумерация элементов массива ...

    Закрыт
    5 лет назад
  • Есть закрытый канал в телеграмме. Необходимо разработать механизм для вычисления пользователей которые сливают информацию с помощью ботов через API в другие каналы. Как вариант разработать бота который мог бы анализировать активность пользователя в API, вычислять частые запросы ...

    Закрыт
    5 лет назад
  • Необходимо написать пару классов на Java для сравнения двух звуковых WAV файлов. Как результат работы данной функции необходимо вернуть процент совпадения между данными звуками. Готовые библиотеки типа musicg – не предлагать. Решение будет встроено в ...

    Закрыт
    5 лет назад
  • Здравствуйте. Нужно сделать конфигурацию NGINX.  Само ТЗ в прикрепленном файле.  На сервере:  ubuntu bionic + php7.3 + nginx(последний)  (если нужно что-то другое – сообщите)  Сколько времени Вам необходимо(примерно) и когда сможете приступить?

    Закрыт
    5 лет назад