Finora mi sono imbattuto in Botan e Crypto++ che forniscono entrambe la crittografia reversibile (ad esempio AES) e non reversibile (ad esempio SHA). Mi chiedevo se qualcuno può raccomandare sia, o qualcos'altro?Librerie di crittografia C++ libere
risposta
OpenSSL ha tutte le funzionalità che ci si aspetterebbe e spesso è già installato (almeno su Linux).
Supporta crittografia asimmetrica/simmetrica, firme digitali e algoritmi di hashing. Ad esempio, è possibile utilizzare l'API di livello superiore OpenSSL EVP per la crittografia simmetrica.
+1, e inoltre dovrei sottolineare che per cose maggio, OpenSSL è considerato * lo * standard. Inoltre, a seconda del tuo campo, se devi sottoporti a un controllo o qualcosa del genere, OpenSSL come qualcosa riconosciuto e ben considerato non causerà alcun problema, ma alcuni altri dubbia libreria scaricata da un server anonimo potrebbe colpire un bastone nelle ruote dell'auditor. – AviD
Non è (ad esempio) SHA-256 SHA-256 indipendentemente dall'implementazione: è deterministico, quindi è possibile testarlo. –
@John: Anche se si tratta dello stesso algoritmo con gli stessi risultati (test), l'implementazione potrebbe essere diversa. A volte, le implementazioni dell'algoritmo di codifica (riferimento) sono imperfette e vulnerabili agli attacchi. AviD significava che una libreria un po 'più stabile come OpenSSL avrebbe mitigato tali rischi. – AndiDog
che ho utilizzato per la libtomcrypt CPP anche se il suo scritto in puro C.
È enorme !, significa che ha piccolo, robusto e semplice implementazione API della maggior parte dei cifrari e gli hash laggiù.
Non in GPL, quindi è possibile utilizzarlo in progetti chiusi.
Google ha una libreria molto interessante: KeyCzar.
Di interesse:
- semplice API (ho usato Crypto ++, e può essere potente ... ma che fatica!)
- chiavi di rotazione e il controllo delle versioni (non intenzione di fare le chiavi evolve, vero?)
- Impostazioni predefinite sicure !!
Francamente, quei 3 punti sono quelli che ritengo siano le considerazioni più importanti una volta che sai che l'implementazione è valida. Soprattutto per quelli di noi che non sono esperti di crittografia.
Mi ricordo vagamente di usare xyssl. Fornito un collegamento diretto. link text
Inoltre è possibile utilizzare libreria di Poco, per ulteriori informazioni visitare www.pocoproject.org
- 1. librerie di crittografia JavaScript?
- 2. Librerie di decodifica video h.264 libere/aperte? (Non GPL)
- 3. Librerie di alta qualità per C++
- 4. Funzioni membro C++ vs funzioni libere
- 5. Richiesta selettore di nubi libere
- 6. ggplot2, facet_grid, scale libere?
- 7. Librerie di logging C
- 8. Librerie di poker C#
- 9. C# Crittografia in PHP Decryption
- 10. Incorpora librerie C++ in librerie .Net
- 11. Variabili libere di Python. Perché fallisce?
- 12. Librerie di elaborazione immagini C++
- 13. Librerie di compressione per C++
- 14. C# Esempio di crittografia AES256 utilizzando System.Security.Cryptography.Aes
- 15. Libreria di crittografia RSA per C++
- 16. porting Java crittografia di routine per C#
- 17. Librerie di eccezioni per C (non C++)
- 18. Librerie C++ simili a C#?
- 19. librerie quaternion in C/C++
- 20. Applicare la semantica alle monadi libere
- 21. Decomposizione librerie Objective-C
- 22. Librerie condivise Linux C++
- 23. Crittografia di base su Android
- 24. Meccanica dell'estensione tramite funzioni libere o funzioni membro
- 25. C++ Impression di librerie di sorgenti Adobe?
- 26. Errore di crittografia Web.config
- 27. In cerca di (c) esempi di mini-lingue libere, ovvero DSL
- 28. RSA Crittografia dei grandi dati in C#
- 29. Modifica crittografia nella crittografia Laravel
- 30. Equivalente Java della crittografia C# AES
SHA è ** non ** una crittografia (o cifra) algoritmo: si tratta di un metodo di hashing. – ereOn
scusate, non ho potuto pensare ad una sola parola per descriverle entrambe. Ma sì, lo sapevo –
SHA è una famiglia di "funzioni di hash crytography". Ecco perché lo trovi in una libreria crittografica. – MSalters