powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / RSA-SHA256
19 сообщений из 19, страница 1 из 1
RSA-SHA256
    #39687445
vizier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день, коллеги
назрел такой вопрос, как зашифровать текст по RSA-SHA256?
спасибо
...
Рейтинг: 0 / 0
RSA-SHA256
    #39687461
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала надо научиться отличать RSA от SHA. Потом CryptoAPI тебе в руки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
RSA-SHA256
    #39687483
vizier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да-да. именно так.
можно пример с использованием CryptAcquireContext & CryptCreateHash с CALG_SHA256 зашифровать строку.
буду примного благодарен!
...
Рейтинг: 0 / 0
RSA-SHA256
    #39687489
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
vizierда-да. именно так.
можно пример с использованием CryptAcquireContext & CryptCreateHash с CALG_SHA256 зашифровать строку.
буду примного благодарен!
Обязательно через CryptAPI ?
Есть же System.Hash.THashSHA2
...
Рейтинг: 0 / 0
RSA-SHA256
    #39687493
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
RSA-SHA256
    #39687498
vizier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне надо зашифровать JWT токен по RS256. саму строку можно и по THashSHA2, наверное)
...
Рейтинг: 0 / 0
RSA-SHA256
    #39687504
vizier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
надо этот алгоритм перевести с openssl на нормальный язык):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
 
var
  BIOPrivateKey: PBIO;
  PrivateKey: PEVP_PKEY;
  Ctx: PEVP_MD_CTX;
  SHA: PEVP_MD;
  Size: Cardinal;
begin
	BIOPrivateKey := Libeay32.BIO_new_mem_buf(@AKey[0], Length(AKey));
  PrivateKey := Libeay32.PEM_read_bio_PrivateKey(BIOPrivateKey, nil, nil, nil);
  Ctx := Libeay32.EVP_MD_CTX_create();
  try
    case Algorithm of
      RS256: SHA := Libeay32.EVP_sha256();
      RS384: SHA := Libeay32.EVP_sha384();
      RS512: SHA := Libeay32.EVP_sha512();
    else
      SHA := nil;
    end;
    if (Libeay32.EVP_DigestSignInit(Ctx, nil, SHA, nil, PrivateKey) > 0) and
      (Libeay32.EVP_DigestUpdate(Ctx, @ABytesToSign[0], Length(ABytesToSign)) > 0) and
      (Libeay32.EVP_DigestSignFinal(Ctx, nil, Size) > 0) then
    begin
      SetLength(Result, Size);
      Libeay32.EVP_DigestSignFinal(Ctx, @Result[0], Size);
    end else
      SetLength(Result, 0);
  finally
    Libeay32.EVP_MD_CTX_destroy(Ctx);
  end;
...
Рейтинг: 0 / 0
RSA-SHA256
    #39687585
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vizierс использованием CryptAcquireContext & CryptCreateHash с CALG_SHA256 зашифровать строку.

А тебя не смущает, что SHA это алгоритм хэширования, а не шифрования?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
RSA-SHA256
    #39687639
vizier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так, алгоритм такой - на вход подать данные и ключ для шифрования, взять хеш с данных (SHA256) и этот хеш зашифровать RSA по ключу с помощью CryptAcquireContext ...

с хешем разобрались, осталось шифрование.

есть идеи как с помощью CryptAcquireContext и ключа зашифровать этот хеш?
...
Рейтинг: 0 / 0
RSA-SHA256
    #39687669
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vizierесть идеи как с помощью CryptAcquireContext и ключа зашифровать этот хеш?

http://delphikingdom.ru/asp/viewitem.asp?catalogid=1271
https://github.com/paolo-rossi/delphi-jose-jwt
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
RSA-SHA256
    #39687685
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vizierесть идеи как с помощью CryptAcquireContext и ключа зашифровать этот хеш?
Кратко - так.
CryptAcquireContext
CryptImportKey
[CryptSetKeyParam(KP_MODE)]
[CryptSetKeyParam(KP_PADDING)]
[CryptSetKeyParam(KP_IV)]
CryptEncrypt(nil)
CryptEncrypt(Result)
CryptDestroyKey
CryptReleaseContext
...
Рейтинг: 0 / 0
RSA-SHA256
    #39687687
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vizier,

Хочешь готовое - за деньги на почту.
...
Рейтинг: 0 / 0
RSA-SHA256
    #39687693
vizier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock , спвсибо. проходи мимо
...
Рейтинг: 0 / 0
RSA-SHA256
    #39687694
vizier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov , ок спасибо
...
Рейтинг: 0 / 0
RSA-SHA256
    #39688278
vizier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
однако ключ не хочет импортится.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  key := TNetEncoding.Base64.DecodeStringToBytes(csSecretKey);

  if not CryptAcquireContext(@rsa, nil, nil, PROV_RSA_FULL, 0) then
    Exit;
  try
    if not CryptImportKey(rsa, @Key[0], Length(Key), 0, 0, @PublicKey) then
    begin
      ShowMessage(SysErrorMessage(GetLastError)); // ->  плохая версия постовщика
      Exit;
    end;



ключ приватный такого вида:

Код: xml
1.
2.
3.
"-----BEGIN CERTIFICATE-----\nMIIDJjCCAg6gAwIBAgIITBMpwgJ5WykwDQYJKoZIhvcNAQEFBQAwNjE0MDIGA1UE
...
/NicQ3cLG9FvD24KbqhQGRblr+2CZQM4xPO\n-----END CERTIFICATE-----\n"


что же здесь не так?
...
Рейтинг: 0 / 0
RSA-SHA256
    #39689426
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vizierчто же здесь не так?

vizier
Код: pascal
1.
плохая версия постовщика


Может, стоит поверить, что винда говорит правильную ошибку?
...
Рейтинг: 0 / 0
RSA-SHA256
    #39689577
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vizierключ приватный такого вида:
Код: xml
1.
2.
3.
"-----BEGIN CERTIFICATE-----\nMIIDJjCCAg6gAwIBAgIITBMpwgJ5WykwDQYJKoZIhvcNAQEFBQAwNjE0MDIGA1UE
...
/NicQ3cLG9FvD24KbqhQGRblr+2CZQM4xPO\n-----END CERTIFICATE-----\n"


что же здесь не так?
Ну, наверное то что это PEM (ASN.1 пакет, кодированный BASE64), а тебе нужен KEY BLOB . Как преобразовать одно в другое - ищи в интернете, документации много, но ASN.1 - это адок тот ещё.
...
Рейтинг: 0 / 0
RSA-SHA256
    #39689579
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
RSA-SHA256
    #39690048
vizier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvp . спасиб. курю.
приходится допиливать LockBox. парсинг ключа формата X509 уже работает, теперь осталось придумать как допилить подписку хэша
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / RSA-SHA256
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]