Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / RSA-SHA256 / 19 сообщений из 19, страница 1 из 1
14.08.2018, 13:29
    #39687445
vizier
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RSA-SHA256
добрый день, коллеги
назрел такой вопрос, как зашифровать текст по RSA-SHA256?
спасибо
...
Рейтинг: 0 / 0
14.08.2018, 13:50
    #39687461
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RSA-SHA256
Для начала надо научиться отличать RSA от SHA. Потом CryptoAPI тебе в руки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.08.2018, 14:04
    #39687483
vizier
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RSA-SHA256
да-да. именно так.
можно пример с использованием CryptAcquireContext & CryptCreateHash с CALG_SHA256 зашифровать строку.
буду примного благодарен!
...
Рейтинг: 0 / 0
14.08.2018, 14:08
    #39687489
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RSA-SHA256
vizierда-да. именно так.
можно пример с использованием CryptAcquireContext & CryptCreateHash с CALG_SHA256 зашифровать строку.
буду примного благодарен!
Обязательно через CryptAPI ?
Есть же System.Hash.THashSHA2
...
Рейтинг: 0 / 0
14.08.2018, 14:11
    #39687493
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RSA-SHA256
...
Рейтинг: 0 / 0
14.08.2018, 14:15
    #39687498
vizier
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RSA-SHA256
мне надо зашифровать JWT токен по RS256. саму строку можно и по THashSHA2, наверное)
...
Рейтинг: 0 / 0
14.08.2018, 14:19
    #39687504
vizier
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RSA-SHA256
надо этот алгоритм перевести с 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
14.08.2018, 16:01
    #39687585
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RSA-SHA256
vizierс использованием CryptAcquireContext & CryptCreateHash с CALG_SHA256 зашифровать строку.

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

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

есть идеи как с помощью CryptAcquireContext и ключа зашифровать этот хеш?
...
Рейтинг: 0 / 0
14.08.2018, 17:33
    #39687669
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RSA-SHA256
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
14.08.2018, 17:57
    #39687685
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RSA-SHA256
vizierесть идеи как с помощью CryptAcquireContext и ключа зашифровать этот хеш?
Кратко - так.
CryptAcquireContext
CryptImportKey
[CryptSetKeyParam(KP_MODE)]
[CryptSetKeyParam(KP_PADDING)]
[CryptSetKeyParam(KP_IV)]
CryptEncrypt(nil)
CryptEncrypt(Result)
CryptDestroyKey
CryptReleaseContext
...
Рейтинг: 0 / 0
14.08.2018, 17:59
    #39687687
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RSA-SHA256
vizier,

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

Код: 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
17.08.2018, 12:27
    #39689426
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RSA-SHA256
vizierчто же здесь не так?

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


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


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


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