Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2015, 14:20   #1
lastell
Пользователь
 
Регистрация: 14.02.2014
Сообщений: 30
По умолчанию

Имеется 1 публичный ключ и текст. Нужно зашифровать текст по методу RSA

Пример того, что надо:
http://www.sources.ru/csharp/RSACryptoPad.html

Но только для delphi

Облазил весь google, но ничего дельного вообще не нашёл

Есть варианты?

Последний раз редактировалось Stilet; 01.06.2015 в 17:00.
lastell вне форума Ответить с цитированием
Старый 01.06.2015, 16:13   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

DCrypt пакет ни разу не видели? Значит вообще гугл не открывали.
Человек_Борща вне форума Ответить с цитированием
Старый 01.06.2015, 16:22   #3
lastell
Пользователь
 
Регистрация: 14.02.2014
Сообщений: 30
По умолчанию

Цитата:
DCrypt
А он тут при чём? Что-то я вообще на нём не видел реализации rsa шифрования текста.
lastell вне форума Ответить с цитированием
Старый 01.06.2015, 16:24   #4
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от lastell Посмотреть сообщение
Есть варианты?
Для начала в википедию: https://ru.wikipedia.org/wiki/RSA
Там берешь алгоритм и уже его переводишь на любой удобный тебе язык программирования.
За тебя тут работать не будут, пора самим уже башкой поработать!
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 01.06.2015, 16:26   #5
lastell
Пользователь
 
Регистрация: 14.02.2014
Сообщений: 30
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
Для начала в википедию: https://ru.wikipedia.org/wiki/RSA
Там берешь алгоритм и уже его переводишь на любой удобный тебе язык программирования.
За тебя тут работать не будут, пора самим уже башкой поработать!
Не можете помочь, удалитесь с темы, пожалуйста

Нужен готовый пример..

Последний раз редактировалось Stilet; 01.06.2015 в 17:00.
lastell вне форума Ответить с цитированием
Старый 01.06.2015, 17:00   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вообще-то примера у меня нет.
Однако тема обсуждалась: http://www.programmersforum.ru/showthread.php?p=954007
http://www.programmersforum.ru/showthread.php?t=118154
Так что в гугле ты не был.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.06.2015, 17:01   #7
lastell
Пользователь
 
Регистрация: 14.02.2014
Сообщений: 30
По умолчанию

17:01
В результате шифрования должно быть вроде этого:
http://www.sources.ru/csharp/RSACryptoPad.png

17:10
Цитата:
Сообщение от Stilet Посмотреть сообщение
Вообще-то примера у меня нет.
Однако тема обсуждалась: http://www.programmersforum.ru/showthread.php?p=954007
http://www.programmersforum.ru/showthread.php?t=118154
Так что в гугле ты не был.
Не нашёл ничего, что нужно именно мне

17:35
Пожалуйста, очень нужно готовое решение!

17:43
Код:
function RSAEncrypt(Source: String; Key: RawByteString): RawByteString;
var
  KeyPair: TStringStream;
  RSA: HCRYPTPROV;
  HPair: HCRYPTKEY;
  DDataSize, EDataSize: DWORD;

begin
  Result := '';
  KeyPair := TStringStream.Create(Key);
  if CryptAcquireContext(@RSA, nil, nil, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT) then
  try
    if CryptImportKey(RSA, PByte(KeyPair.Memory), KeyPair.Size, 0, 0, @HPair) then
    try
      EDataSize := SizeOf(Source);
      if CryptEncrypt(HPair, 0, true, 0, nil, @EDataSize, 0) then
      begin
        Result := Source;
        SetLength(Result, EDataSize);
        DDataSize := Length(Source) * SizeOf(Char);
        if not(CryptEncrypt(HPair, 0, True, 0, PByte(PChar(Result)), @DDataSize, EDataSize)) then
          Result := '';
      end;
    finally
      CryptDestroyKey(HPair);
    end;
  finally
  CryptReleaseContext(RSA, 0);
  end;
  FreeAndNil(KeyPair);
end;
Есть приблизительный код, но он не работает, результата вообще нет

Форум не чат, не плоди подряд кучу сообщений, есть кнопка правка

Последний раз редактировалось Аватар; 01.06.2015 в 18:06.
lastell вне форума Ответить с цитированием
Старый 01.06.2015, 21:36   #8
lastell
Пользователь
 
Регистрация: 14.02.2014
Сообщений: 30
По умолчанию

Так и не нашёл решения
lastell вне форума Ответить с цитированием
Старый 02.06.2015, 11:00   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от lastell
В результате шифрования должно быть вроде этого:
на скриншоте явно представлен результат кодирования в base64.
Т.е. вам нужно зашифрованную информацию прогнать через Base64 Encode
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.06.2015, 13:23   #10
lastell
Пользователь
 
Регистрация: 14.02.2014
Сообщений: 30
По умолчанию

Цитата:
на скриншоте явно представлен результат кодирования в base64.
Т.е. вам нужно зашифрованную информацию прогнать через Base64 Encode
Спасибо. Но мне сначала тогда rsa шифрование нужно и сервер для этого даёт свой публичный ключ: publickey_mod
lastell вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RSA Шифрование Ericnex Помощь студентам 4 18.11.2013 17:36
Шифрование методом RSA c++\c Lokomoss Помощь студентам 7 01.11.2012 16:48
RSA шифрование на C++ Lervil Фриланс 9 04.07.2011 09:38
DES и RSA шифрование! korneplodik Помощь студентам 0 16.05.2011 10:56
RSA шифрование Slimbr Помощь студентам 0 12.12.2009 13:30