Библиотека шифрования RSA для C++ [закрыта]

Я разрабатываю приложение Win32 и хочу использовать библиотеку шифрования RSA. Какую библиотеку вы бы порекомендовали?


person Zombies    schedule 20.09.2008    source источник


Ответы (9)


Я использую следующую библиотеку:

http://www.efgh.com/software/rsa.htm

Это общественное достояние, компактное, автономное и хорошо работающее.

person Andrei Belogortseff    schedule 20.09.2008
comment
Эта библиотека не использует отступы. Это значительное упущение. - person Accipitridae; 19.05.2009
comment
Правда, я улучшил его, добавив это. Проблема в том, что я потерял код :(. Его было не так уж сложно добавить... - person Zombies; 11.06.2010
comment
Он использует 16-битные целые числа в качестве примитивных элементов. Вероятно, это довольно медленно на современном оборудовании. Кроме того, если я правильно понимаю, он использует наивную реализацию для операции pow/mod. Существуют более быстрые алгоритмы... - person Seva Alekseyev; 07.09.2013

Если вы используете Win32, почему бы вам просто не использовать встроенный криптографический API Win32?

Вот небольшой пример того, как это работает на практике:

http://www.codeproject.com/KB/security/EncryptionCryptoAPI.aspx

person Nils Pipenbrinck    schedule 20.09.2008
comment
Во-первых, это не C++. - person dvorak; 21.09.2008
comment
Win API написан на C, и его можно сразу же использовать в программе на C++. - person KTC; 21.09.2008
comment
Ага. Если вы предпочитаете интерфейс C++, напишите для него оболочку. В любом случае это может быть хорошей идеей на тот случай, если вы позже захотите изменить API. - person Nils Pipenbrinck; 21.09.2008
comment
Потому что это очень небезопасно, учитывая тот факт, что никто больше не доверяет Microsoft шифрование файлов. - person Zombies; 29.05.2014
comment
Истинный. Ответ был дан до краха криптовалюты Сноудена и АНБ. - person Nils Pipenbrinck; 29.05.2014

Crypto++ — у них есть библиотеки DLL, проверенные NIST FIPS для MSVC 6, 7.1 и 8 поверх обычного исходного кода. встроенные пакеты.

person KTC    schedule 20.09.2008
comment
для меня нет вопросов, печать одобрения NIST много значит. Шифрование - это не одна из тех вещей, с которыми вы хотите возиться - вы ДОЛЖНЫ быть в состоянии доверять тому, что оно реализовано правильно и не имеет дыр в безопасности. - person Jason S; 16.12.2008

Я думаю, что OpenSSL — хороший выбор. В хорошем состоянии, и цена адекватная :)

http://www.openssl.org

person Mike G.    schedule 20.09.2008
comment
Имейте в виду, что OpenSSL не совместим с GPL. - person Leon Timmermans; 20.09.2008
comment
Он написан на C и сразу же может быть использован в программе на C++. - person KTC; 21.09.2008
comment
@ Леон, вы можете использовать OpenSSL с приложением GPL, это явная запись в FAQ. openssl.org/support/faq.html#LEGAL2 - person Bruno Rohée; 30.03.2011
comment
@Bruno: Из часто задаваемых вопросов, на которые вы ссылаетесь: в других системах [кроме Linux/BSD] ситуация менее ясна. Некоторые правообладатели программного обеспечения GPL утверждают, что вы нарушаете их права, если используете OpenSSL, который обычно не включает OpenSSL. Википедия утверждает, что OpenSSL несовместим. - person Maciej Piechotka; 09.08.2011
comment
Запись часто задаваемых вопросов довольно ясна, она определенно совместима с системами, в которых OpenSSL поставляется по умолчанию, точно так же, как программа GPL может ссылаться на проприетарную libc, скажем, в AIX. В других системах он может быть более серым, и нельзя узнать наверняка, пока не будет принято решение суда. - person Bruno Rohée; 10.08.2011

Может быть Botan является альтернативой? Это библиотека C++ с лицензией BSD, которая поддерживает алгоритмы RSA.

person FeatureCreep    schedule 17.05.2009

В качестве альтернативы рассмотрите LibTomCrypt (https://github.com/libtom/libtomcrypt)

person Eli Bendersky    schedule 20.09.2008
comment
Он написан на C и сразу же может быть использован в программе на C++. - person KTC; 21.09.2008
comment
ссылка мертва - person Nicolas Holthaus; 16.07.2020
comment
@NicolasHolthaus: спасибо, я обновил ссылку до рабочей. - person Eli Bendersky; 17.07.2020

Другой альтернативой является libbeecrypt. Очень зрелый продукт с ассемблерными реализациями на многих платформах.

person paxos1977    schedule 07.10.2008

В прошлом я использовал OpenSSL и обнаружил, что это отличная библиотека для криптографических API, включая AES, RSA, 3DES.

person Community    schedule 16.12.2008

Я бы рекомендовал библиотеку Miracl https://certivox.com/solutions/miracl-crypto-sdk/ но цена высока.

person Bartosz Wójcik    schedule 25.04.2013