Question

Je cherche deux fonctions similaires à celles-ci 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 );

string pourrait être un char*, un std::string ou quelque chose facilement convertible en ces deux. Et où public_key et private_key peuvent être fondamentalement quoi que ce soit, à partir des clés générées avec quelques commandes (GPG / ssl trucs ou autre), aux clés générées avec d'autres simples fonctions .

Je l'ai regardé dans quelques bibliothèques de cryptographie (libgcrypt, libgpgme, OpenSSL ...), mais il ne semble pas facile du tout à mettre en œuvre ces fonctions avec ces bibliothèques: ils ont besoin d'une connaissance non superficielle sur le cryptage 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?

Était-ce utile?

La solution

Malheureusement, le cryptage toujours exige une connaissance non superficielle des algorithmes impliqués. Il est difficile d'obtenir le droit. « Handbook of Applied Cryptography » est un guide relativement lisible aux différents algorithmes disponibles donc il vaut probablement la peine un regard.

Vous pouvez également essayer cryptlib . Il semble avoir une conception bien en couches qui vous donne des valeurs adaptées pour un grand nombre de paramètres afin que vous puissiez nous espérons commencer sans avoir à se soucier trop sur les détails.

Autres conseils

Quand quelqu'un demande pour le chiffrement facile, je ne peux que recommander KeyCzar .

Il fournit non seulement une interface propre en plusieurs langues (qui peuvent utiliser les mêmes touches), mais aussi des mécanismes pour gérer les rotations des clés et autres.

Et bien sûr, par défaut de sécurité pour les algorithmes mis en œuvre afin que vous n'avez pas à vous soucier des détails techniques.

Vraiment, la combinaison meilleure et facile sûr je l'ai vu jusqu'à présent.

En supposant que vous n'avez pas besoin agnostique de la plate-forme de quelque chose, Cryptography Next Generation (CNG) est une API de cryptographie relativement nouveau sur Windows et est étonnamment intuitive et facile à utiliser. J'ai écrit un article qui comprend des exemples de toutes les principales opérations cryptographiques que vous êtes susceptibles d'avoir besoin dans les applications typiques. L'exemple de code pour l'article fournit également un exemple de travail complet pour ces opérations à l'aide du compilateur Visual C ++.

http://msdn.microsoft.com/en-us/magazine/ cc163389.aspx

Pour traiter les clés publiques et privées sous forme de chaînes que vous pouvez simplement utiliser base64 ou un codage similaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top