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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
33
0
44 423
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

Я думаю, что OpenSSL - хороший выбор. Он ухоженный, и цена подходящая :)

http://www.openssl.org

Помните, что OpenSSL не совместим с GPL.

Leon Timmermans 20.09.2008 20:41

Он написан на C и сразу же может использоваться в программе на C++.

KTC 21.09.2008 03:05

@Leon, вы можете использовать OpenSSL с приложением GPL, это явная запись в FAQ. openssl.org/support/faq.html#LEGAL2

Bruno Rohée 30.03.2011 02:04

@Bruno: Из FAQ, который вы связали: «В других системах [кроме Linux / BSD] ситуация менее ясна. Некоторые правообладатели программного обеспечения GPL заявляют, что вы нарушаете их права, если используете OpenSSL, который обычно не включает OpenSSL. ". Википедия утверждает, что OpenSSL несовместим.

Maciej Piechotka 09.08.2011 15:47

Запись в FAQ довольно ясна, она определенно совместима с системами, в которых OpenSSL поставляется по умолчанию, точно так же, как программа GPL может ссылаться на проприетарную libc, скажем, в AIX. Это может быть более серым в других системах, невозможно узнать наверняка, пока по этому поводу не будет принято решение суда.

Bruno Rohée 10.08.2011 16:27

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

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

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

С одной стороны, это не похоже на C++.

dvorak 21.09.2008 02:52

Win API находится на языке C, который сразу же можно использовать в программе на C++.

KTC 21.09.2008 03:04

Ага. Если вы предпочитаете интерфейс C++, напишите себе оболочку вокруг него. В любом случае это может быть хорошей идеей на случай, если вы позже захотите изменить API.

Nils Pipenbrinck 21.09.2008 04:28

Потому что это очень небезопасно, учитывая тот факт, что никто больше не доверяет Microsoft шифрование файлов.

Zombies 29.05.2014 14:17

Истинный. Ответ был дан до обвала криптовалюты Сноудена и АНБ.

Nils Pipenbrinck 29.05.2014 14:38

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

Он написан на C и сразу же может использоваться в программе на C++.

KTC 21.09.2008 03:06

ссылка мертва

Nicolas Holthaus 16.07.2020 21:08

@NicolasHolthaus: спасибо, я обновился до рабочей ссылки.

Eli Bendersky 17.07.2020 04:16
Ответ принят как подходящий

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

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

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

Эта библиотека не использует отступы. Это существенное упущение.

Accipitridae 19.05.2009 21:10

Правда, я улучшил его, добавив это. Проблема в том, что я потерял код :(. Хотя это было не так уж сложно добавить ...

Zombies 11.06.2010 20:06

Он использует 16-битные целые числа в качестве примитивных элементов. Вероятно, это довольно медленно на современном оборудовании. Кроме того, если я правильно понимаю, он использует наивную реализацию для операции pow / mod. Существуют более быстрые алгоритмы ...

Seva Alekseyev 07.09.2013 19:59

Крипто ++ - у них есть проверенные NIST FIPS dll для MSVC 6, 7.1 и 8 поверх обычных самодельных пакетов с исходным кодом.

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

Jason S 16.12.2008 16:31

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

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

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

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

Другие вопросы по теме