C / C ++ crypter / décrypter avec une clé publique
Je suis à la recherche de deux fonctions similaires sur le plan conceptuel:
//returns the encrypted text
string encrypt( string public_key, string pass_phrase, string text );
//returns the original text
string decrypt( string private_key, string pass_phrase, string encrypted_text );
où string
pourrait être un char*
un std::string
ou quelque chose de facilement convertibles à ces deux-là. Et où public_key
et private_key
peut être pratiquement n'importe quoi, des clés générées avec certaines commandes (gpg/ssl des trucs ou quoi que ce soit), pour les clés générées avec d'autres simple fonctions.
J'ai regardé dans quelques bibliothèques de cryptographie (libgcrypt, libgpgme, openssl ...), mais il ne semble pas du tout facile à mettre en œuvre ces fonctions avec celles des bibliothèques: ils ont besoin d'une non-connaissance superficielle sur le chiffrement asymétrique et beaucoup de code.
De toute façon cette tâche ne semble pas rare.
Comment puis-je mettre en œuvre les deux fonctions ci-dessus?
source d'informationauteur peoro
Vous devez vous connecter pour publier un commentaire.
Malheureusement, le cryptage toujours nécessite une non-connaissance superficielle des algorithmes impliqués. Il est difficile d'obtenir le droit. Le "Handbook of Applied Cryptography" est relativement lisible guide pour les différents algorithmes disponibles de sorte qu'il est probablement la peine de les regarder.
Vous pouvez également essayer de cryptlib. Il semble avoir une conception stratifiée qui vous donne des valeurs par défaut raisonnables pour un grand nombre de paramètres, de sorte que vous pouvez espérer obtenir commencé sans avoir à trop se soucier de tous les détails.
Quand quelqu'un demande pour faciliter le cryptage, je ne peux que recommander KeyCzar.
Il ne fournit pas seulement une interface propre en plusieurs langues (qui peuvent utiliser les mêmes touches), mais également des mécanismes pour gérer les rotations des clés et la comme.
Et bien sûr, en sécurité par défaut pour les algorithmes mis en œuvre de sorte que vous n'avez pas à vous soucier des détails techniques.
Vraiment, le mieux facile & combinaison du coffre que j'ai vu jusqu'à présent.
En supposant que vous n'avez pas besoin de quelque chose de plate-forme agnostique, la Cryptographie nouvelle Génération (CNG) est relativement nouvelle API de chiffrement sous Windows et est étonnamment intuitive et facile à utiliser. J'ai écrit un article qui comprend des exemples de toutes les principales opérations cryptographiques vous êtes susceptible d'avoir besoin dans des applications typiques. L'exemple de code pour l'article fournit également un travail complet exemple pour ces opérations en utilisant le compilateur Visual C++.
http://msdn.microsoft.com/en-us/magazine/cc163389.aspx
Pour traiter les clés publiques et privées en tant que chaînes de caractères que vous pouvez simplement utiliser Base64 ou un analogue de l'encodage.