2008-09-20 17 views

Respuesta

5

utilizo la biblioteca siguiente:

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

Es de dominio público, compacto, autónomo, y lo hace el trabajar bien.

+9

Esta biblioteca no usa relleno. Esa es una omisión significativa. – Accipitridae

+0

Es cierto que, sin embargo, lo mejoré al agregar eso. El problema es que perdí el código :(.Sin embargo, no fue "demasiado difícil de agregar ... – Zombies

+1

Utiliza 16 bits como elementos primitivos. Es probable que sea bastante lento en hardware moderno. Además, si entiendo correctamente, utiliza una implementación ingenua para la operación pow/mod. Los algoritmos más rápidos existen ... –

12

Creo que OpenSSL es una buena opción. Está bien mantenido, y el precio es correcto :)

http://www.openssl.org

+0

Tenga en cuenta que OpenSSL no es compatible con GPL. –

+0

Tampoco es C++ – dvorak

+4

Está escrito en C, y se puede utilizar inmediatamente dentro de un programa C++. – KTC

25

Si está utilizando Win32, ¿por qué no sólo tiene que utilizar el cripto-API incorporado en Win32?

He aquí un pequeño ejemplo de cómo funciona en la práctica:

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

+0

No parece ser C++ para uno. – dvorak

+2

La API de Win está en C, que se puede usar inmediatamente dentro de un programa de C++. – KTC

+0

Sí. Si prefieres una interfaz C++, escríbete una envoltura alrededor de ella. Puede ser una buena idea de todos modos por si acaso quiere cambiar la API. –

17

Crypto++ - Tienen dll validadas por NIST FIPS para MSVC 6, 7.1 y 8 en la parte superior de los paquetes autoconstruidos de código fuente normal.

+2

no hay duda para mí, el sello de aprobación NIST significa mucho. El cifrado no es una de esas cosas con las que desea perder el tiempo: TIENE que poder confiar en que se implementó correctamente y que no tiene agujeros de seguridad. –

4

Otra alternativa es libbeecrypt. Un producto muy maduro con implementaciones de ensamblador en muchas plataformas.

1

He utilizado OpenSSL en el pasado y me pareció una gran biblioteca para API criptográficas que incluyen AES, RSA, 3DES.

6

¿Tal vez Botan es una alternativa? Es una biblioteca C++ con una licencia BSD que admite algoritmos RSA.