Автор | Сообщение |
|
| постоянный участник
|
Пост N: 2513
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.12.12 08:41. Заголовок: Аналоги функции HB_Crypt и HB_Decrypt для Harbour'а ?
Всем привет. Подскажите пожалуйста, есть ли в Харборе фунции как в хХарборе HB_Crypt и HB_Decrypt ?
|
|
|
Ответов - 34
, стр:
1
2
All
[только новые]
|
|
|
| moderator
|
Пост N: 525
Зарегистрирован: 06.07.06
|
|
Отправлено: 26.12.12 10:07. Заголовок: В Харборе есть функц..
В Харборе есть функции, реализующие разные алгоритмы шифрации: HB_BLOWFISHDECRYPT - Blowfish - популярный криптостойкий алгоритм HB_BLOWFISHENCRYPT HB_MD5DECRYPT - Md5, ничего про него не знаю HB_MD5ENCRYPT SX_DECRYPT - из библиотеки hbsix, наверное, самый простой SX_ENCRYPT
|
|
|
|
| |
Пост N: 2590
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.12.12 10:25. Заголовок: Andrey 2008-06-10..
Andrey 2008-06-10 16:06 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + contrib/xhb/hbcrypt.c + contrib/xhb/hbnxs.h * contrib/xhb/Makefile * contrib/xhb/common.mak + Added HB_CRYPT()/HB_DECRYPT(). Thanks to Giancarlo Niccolai / xhb. + Changed to not depend on hbzlib. ; Minor modifications to compile smoothly in Harbour. [1.0.0RC1]
|
|
|
|
| постоянный участник
|
Пост N: 2516
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.12.12 13:43. Заголовок: Спасибо БОЛЬШОЕ ! :..
Спасибо БОЛЬШОЕ ! Я искал через Far в папке "Harbour SVN 30" строку "crypt" по маске *.prg - из-за этого и не нашел ничего. Неправильно искал... Интересно, я еще по доке Харбора искал такую строку, тоже ничего нет.
|
|
|
|
| |
Пост N: 2591
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.12.12 15:12. Заголовок: Andrey я искал в Ch..
Andrey я искал в ChangeLog
|
|
|
|
| постоянный участник
|
Пост N: 3433
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.06.14 18:45. Заголовок: Использую в хХарборе..
Использую в хХарборе 1.2.3 функцию CRYPT(cStr, cPass) - осталось еще с клипера. Сделал новую прогу на МиниГуи (соответственно последний Харбор) и пытаюсь прочитать базы с хХарбора. Функция CRYPT() в Харборе дает другое значение ! Вопрос: как можно сделать работу функций одинаковой ? Т.е. отказ от CRYPT и переход на одинаковую функцию в Харборе и хХарборе.
|
|
|
|
| |
Пост N: 4066
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.06.14 23:17. Заголовок: Andrey Это твоя сам..
Andrey Это твоя самописная функция ?
|
|
|
|
| постоянный участник
|
Пост N: 3434
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.06.14 07:57. Заголовок: Dima пишет: Это тво..
Dima пишет: цитата: | Это твоя самописная функция ? |
| Стандартная клиперовская. Работает и в Харборе и хХарборе.
|
|
|
|
| |
Пост N: 4067
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.06.14 08:54. Заголовок: HB_Crypt не пробовал..
HB_Crypt не пробовал ?
|
|
|
|
| |
Пост N: 4068
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.06.14 09:11. Заголовок: Упс , это мы говорим..
Упс , это мы говорим про CRYPT из CT ? Значит надо проверить что выдаст тестовый пример в Clipper , Harbour , Xharbour Проверил. Сlipper и Harbour дают разные результаты
|
|
|
|
| постоянный участник
|
Пост N: 3435
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.06.14 09:29. Заголовок: Dima пишет: Harbour..
Dima пишет: CRYPT из CT - различается для них !
|
|
|
|
| |
Пост N: 4069
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.06.14 10:19. Заголовок: Andrey Андрей а есл..
Andrey Андрей а если бы кроме Harbour , Xharbour были бы YHarbour и ZHarbour ты бы и на них писал ? Остановись уже на каком то одном. Иначе будешь постоянно находить не стыковки.
|
|
|
|
|
| постоянный участник
|
Пост N: 3436
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.06.14 12:44. Заголовок: Dima пишет: Останов..
Dima пишет: цитата: | Остановись уже на каком то одном. Иначе будешь постоянно находить не стыковки. |
| Дима, штук 10 задач переделал на хХарбор уже давно. Года 2 пытаюсь перейти на МиниГуи. Переделать сразу ВСЁ на Харбор просто нереально. Делаю мелкими шагами. Самый главный шаг это TBROWSE, пока не получается. Сделал пока новое меню на МиниГуи. Открываю базу паролей задач на хХарборе. Споткнулся на функции CRYPT(). Вот из-за этого и спрашиваю, кто знает ОДИНАКОВЫЕ функции (такого класса) для Харбора и хХарбора ?
|
|
|
|
| постоянный участник
|
Пост N: 349
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.06.14 13:00. Заголовок: Andrey в MiniGui ес..
Andrey в MiniGui есть: h_crypt.prg и там (может пойдет): Скрытый текст
FUNCTION _ENCRYPT(cStr, cPass) LOCAL cXorStr := CHARXOR( cStr, "<ORIGINAL>" ) IF !EMPTY(cPass) cXorStr := CHARXOR( cXorStr, cPass ) ENDIF RETURN cXorStr FUNCTION _DECRYPT(cStr, cPass) LOCAL cXorStr := CHARXOR( cStr, cPass ) RETURN CHARXOR( cXorStr, "<ORIGINAL>" )
|
|
|
|
|
| постоянный участник
|
Пост N: 350
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.06.14 13:08. Заголовок: Andrey еще в hb_six..
Andrey еще в hb_six.lib есть SX_DECRYPT(cStr, cPas), SX_ENCRYPT(cStr, cPas)
|
|
|
|
| постоянный участник
|
Пост N: 3437
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.06.14 13:16. Заголовок: SergKis пишет: CHAR..
SergKis пишет: цитата: | CHARXOR( cXorStr, cPass ) |
| А эта функция одинаково работает в Харборе и хХарборе ?
|
|
|
|
| постоянный участник
|
Пост N: 351
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.06.14 13:24. Заголовок: Andrey проверь. хХа..
Andrey проверь. хХарбора не использую
|
|
|
|
| |
Пост N: 4070
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.06.14 13:53. Заголовок: Andrey пишет: А эта..
Andrey пишет: цитата: | А эта функция одинаково работает в Харборе и хХарборе ? |
| Проверил. Одинаково в Clipper и Harbour. Xharbour нет у меня но думаю так же будет.
|
|
|
|
| постоянный участник
|
Пост N: 3438
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.06.14 18:59. Заголовок: Функции HB_Crypt и H..
Функции HB_Crypt и HB_Decrypt работают в Харборе 3.2.0dev (r1405231501) и хХарборе 1.2.3 - одинаково ! Проверил...
|
|
|
|
| |
Пост N: 44
Зарегистрирован: 03.02.12
|
|
Отправлено: 09.07.14 10:56. Заголовок: Подскажите пожалуйст..
Подскажите пожалуйста параметры функций: HB_BLOWFISHDECRYPT() HB_BLOWFISHENCRYPT()
|
|
|
|
| |
Пост N: 4097
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.07.14 10:58. Заголовок: Dazzler hb..
Dazzler hb_blowfishKey( <cPass> ) -> <bfKey> hb_blowfishEncrypt( <bfKey>, <cData> ) -> <cCryptedData> hb_blowfishDecrypt( <bfKey>, <cCryptedData> ) -> <cData>
|
|
|
|
| |
Пост N: 45
Зарегистрирован: 03.02.12
|
|
Отправлено: 09.07.14 12:05. Заголовок: Dima пишет: hb_blow..
Dima пишет: цитата: | hb_blowfishKey( <cPass> ) -> <bfKey> hb_blowfishEncrypt( <bfKey>, <cData> ) -> <cCryptedData> hb_blowfishDecrypt( <bfKey>, <cCryptedData> ) -> <cData> |
| Спасибо!
|
|
|
|
|
| |
Пост N: 303
Зарегистрирован: 16.12.08
|
|
Отправлено: 09.07.14 12:13. Заголовок: Небольшие примеры ис..
Небольшие примеры использования данных функций: в xHarbour: /* * Test program for blowfish routines */ #include "common.ch" PROCEDURE MAIN() LOCAL cData := "Harbour Power" LOCAL cKey := hb_blowfishKey( "password" ) LOCAL cCrypted := hb_blowfishEncrypt( cKey, cData ) LOCAL cDecrypted ? cCrypted ? cDecrypted := hb_blowfishDecrypt( cKey, cCrypted ) ? cDecrypted == cData ? LEN( cDecrypted ) == LEN( cData ) RETURN Пример от Пшемека для harbour: proc main() local cText, cEncrypted, cDecrypted, cPass, bfKey cText := "This is my secret message." cPass := "Top Secret ;-)" bfKey := hb_blowfishKey( cPass ) /* encrypt data */ cEncrypted := hb_blowfishEncrypt( bfKey, cText ) /* dencrypt data */ cDecrypted := hb_blowfishDecrypt( bfKey, cEncrypted ) ? "plain text:", hb_strToExp( cText ) RETURN nil
|
|
|
|
| постоянный участник
|
Пост N: 5297
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.01.17 12:15. Заголовок: Всем привет. Есть ли..
Всем привет. Есть ли для харбора готовые функции для алгоритма RSA ?
|
|
|
|
| |
Пост N: 6255
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.01.17 12:25. Заголовок: Andrey Смотри приме..
Andrey Смотри примеры в HBSSL
|
|
|
|
| постоянный участник
|
Пост N: 5298
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.01.17 12:41. Заголовок: Dima пишет: Смотри ..
Dima пишет: Посмотрел... Как запустить то ? Совсем забыл как собирать... И как перетащить на МиниГуи ?
|
|
|
|
| |
Пост N: 6256
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.01.17 13:01. Заголовок: Andrey пишет: И как..
Andrey пишет: цитата: | И как перетащить на МиниГуи ? |
| КаГ бы ни чего перетаскивать и не нужно , так как: * Updated: Harbour Compiler 3.2.0dev (r2014-01-21 20:41): * New: added HbSSL wrapper library and OpenSSL corresponding libraries.
|
|
|
|
| moderator
|
Пост N: 1063
Зарегистрирован: 06.07.06
|
|
Отправлено: 26.01.17 13:38. Заголовок: Может, я что-то упус..
Может, я что-то упустил, но в hbssl нет всех нужных функций для RSA. Полгода назад я написал небольшой набор - обертки для RSA_public_encrypt(), RSA_private_decrypt() и пр., но применить на практике не было случая.
|
|
|
|
| постоянный участник
|
Пост N: 5299
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.01.17 15:08. Заголовок: alkresin пишет: Мож..
alkresin пишет: цитата: | Может, я что-то упустил, но в hbssl нет всех нужных функций для RSA. |
| Мне нужны функции для работы со строками. alkresin пишет: цитата: | Полгода назад я написал небольшой набор - обертки для RSA_public_encrypt(), RSA_private_decrypt() и пр., но применить на практике не было случая. |
| А можете выложить ? Попробуем на практике...
|
|
|
|
| |
Пост N: 6258
Зарегистрирован: 17.05.05
|
|
Отправлено: 26.01.17 22:32. Заголовок: Andrey пишет: Есть ..
Andrey пишет: цитата: | Есть ли для харбора готовые функции для алгоритма RSA ? |
| А если реально , то для чего это тебе нужно ?
|
|
|
|
| moderator
|
Пост N: 1064
Зарегистрирован: 06.07.06
|
|
Отправлено: 27.01.17 09:08. Заголовок: Вот минимально необх..
Вот минимально необходимый набор функций: Скрытый текст #include "hbapi.h" #include "hbapiitm.h" #include "hbapierr.h" #include <openssl/evp.h> #include <openssl/ssl.h> #include <openssl/rand.h> static int padding = RSA_PKCS1_PADDING; static RSA * createRSA( unsigned char * skey, int iPublic ) { RSA * rsa = NULL; BIO * bio = BIO_new_mem_buf( skey, -1 ); if( !bio ) return 0; if( iPublic ) rsa = PEM_read_bio_RSA_PUBKEY( bio, &rsa,NULL, NULL ); else rsa = PEM_read_bio_RSAPrivateKey( bio, &rsa,NULL, NULL ); BIO_free( bio ); return rsa; } HB_FUNC( OSSL_RSA_PUBLIC_ENCRYPT ) { RSA * rsa = createRSA( (unsigned char *) hb_parc(2), 1 ); const unsigned char * data = (const unsigned char *) hb_parc( 1 ); unsigned char sEncrypted[4098]; int nResult; nResult = RSA_public_encrypt( hb_parclen(1), data, sEncrypted, rsa, padding ); if( nResult == -1 ) hb_ret(); else { hb_retclen( (const char *) sEncrypted, nResult ); } RSA_free( rsa ); } HB_FUNC( OSSL_RSA_PRIVATE_DECRYPT ) { RSA * rsa = createRSA( (unsigned char *) hb_parc(2), 0 ); const unsigned char * data = (const unsigned char *) hb_parc( 1 ); unsigned char sDecrypted[4098]; int nResult; nResult = RSA_private_decrypt( hb_parclen(1), data, sDecrypted, rsa, padding ); if( nResult == -1 ) hb_ret(); else { hb_retclen( (const char *) sDecrypted, nResult ); } RSA_free( rsa ); }
| Для работы нужны libeay32.dll, ssleay32.dll, для сборки программы, соответственно, liblibeay32.a и libssleay32.a - собирать желательно с Mingw. Сгенерировать ключи можно самой openssl.exe. Сначала личный: openssl genrsa -out private.pem 2048 а потом из него публичный: openssl rsa -in private.pem -outform PEM -pubout -out public.pem Публичный отдаете, например, мне - и я теперь могу пересылать вам зашифрованные строки: cOriginal := "Some secret text" cCrypted := OSSL_RSA_PUBLIC_ENCRYPT( cOriginal, Memoread("public.pem") ) а вы - их расшифровывать: cOriginal := OSSL_RSA_PRIVATE_DECRYPT( cCrypted, Memoread("private.pem") )
|
|
|
|
| постоянный участник
|
Пост N: 5300
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.01.17 19:05. Заголовок: alkresin пишет: Вот..
alkresin пишет: цитата: | Вот минимально необходимый набор функций: |
| Спасибо большое ! Буду пробовать...
|
|
|
|
|
| |
Пост N: 510
Зарегистрирован: 08.07.06
|
|
Отправлено: 28.01.17 22:29. Заголовок: сорри, что вмешиваюс..
сорри, что вмешиваюсь. Dima пишет: цитата: | А если реально , то для чего это тебе нужно ? |
| RSA - один из алгоритмов АССИМЕТРИЧНОГО шифрования. Предназначен для обмена данными по открытым каналам. Основа протокола https:// Правда недавно стало известно, что и это не панацея. Его хакнули. Но это уже офф. Вкратце - есть Петя, он дает двум своим друзьям - Васе и Коле ПУБЛИЧНЫЙ ключ, при помощи которого они шифруют свои сообщениx и отсылают их Пете. При этом - ни Вася, ни Коля не могут расшифровать сообщения друг друга. Они не могут расшифровать даже свои собственные сообщения, тк для их расшифровки у Пети есть ПРИВАТНЫЙ ключ, который он НИКОМУ НЕ ДАЕТ. Т.е. зашифровка происходит с одним ключом, а расшифровка - с другим.
|
|
|
|
| |
Пост N: 6263
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.01.17 22:41. Заголовок: Sergy пишет: Его ха..
Sergy пишет: цитата: | Его хакнули. Но это уже офф. |
|
|
|
|
|
| |
Пост N: 511
Зарегистрирован: 08.07.06
|
|
Отправлено: 28.01.17 22:55. Заголовок: Уточню: хакнули не с..
Если интересно, тогда уточню: хакнули не сам RSA (он довольно устойчив), а протокол обмена ключами, на котором построен https и прочие PGP. Суть вкратце такая: На канал связи между Петей и его друзьями садится некто, пусть ОЛЕГ. В тот момент, когда Петя посылает публичный ключ своим друзьям, Олег сохраняет его и посылает Васе и Коле свой собственный публичный ключ. Вася и Коля, шифруя свои сообщения подмененным ключом, не знают об этом и Олег (сидящий на линии), расшифровывает их сообщения своим приватным ключом, спокойно читает их, при необходимости корректирует и отсылает их Пете, шифруя их уже Петиным публичным ключом. Все трое счастливы, но Олег счастливее всех троих вместе взятых. Атака называется man-in-the-middle, борьбой с ней является передача публичного ключа по защищенным каналам связи. Как раз теряется то преимущество, которое завялено как основное в алгоритмах ассиметричного шифрования. Банки с недавних пор делают это только на бумаге, требуя личного присутствия фин.директора организации. Из недавнего: https://www.searchengines.ru/sert-ssl.html
|
|
|
Ответов - 34
, стр:
1
2
All
[только новые]
|
|