سؤال

أنا أبحث عن وظيفتين تشبهان هذه:

// 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 يمكن أن يكون char*, ، أ std::string أو شيء يمكن تحويله بسهولة إلى هذين. و أين public_key و private_key يمكن أن يكون أي شيء في الأساس ، من المفاتيح التي تم إنشاؤها مع بعض الأوامر (GPG/SSL الأشياء أو أي شيء آخر) ، إلى المفاتيح التي تم إنشاؤها مع أخرى بسيط المهام.

لقد بحثت في عدد قليل من مكتبات التشفير (libgcrypt ، libgpgme ، openssl ...) ، لكن لا يبدو الأمر سهلاً على الإطلاق لتنفيذ مثل هذه الوظائف مع تلك المكتبات: إنها تتطلب معرفة غير متميزة حول التشفير غير المتماثل والكثير من الكود.

على أي حال ، لا تبدو هذه المهمة غير شائعة. كيف يمكنني تنفيذ وظيفتين أعلاه؟

هل كانت مفيدة؟

المحلول

لسوء الحظ ، التشفير دائماً يتطلب معرفة غير متميزة للخوارزميات المعنية. من الصعب الحصول على حق. يعد "كتيب التشفير التطبيقي" دليلًا قابل للقراءة نسبيًا لخوارزميات مختلفة متوفرة ، لذا فمن المحتمل أن يستحق نظرة.

يمكنك أيضا المحاولة cryptlib. يبدو أن لديه تصميمًا جيدًا يمنحك الإعدادات الافتراضية المعقولة لكثير من المعلمات حتى تتمكن من البدء دون الحاجة إلى القلق كثيرًا بشأن التفاصيل.

نصائح أخرى

عندما يسأل شخص ما عن تشفير سهل ، لا يمكنني إلا أن أوصي Keyczar.

لا يوفر فقط واجهة نظيفة بعدة لغات (يمكنها استخدام نفس المفاتيح) ولكن أيضًا آليات للتعامل مع دورات المفاتيح وما شابه.

وبالطبع ، فإن الإعدادات الافتراضية الآمنة للخوارزميات التي تم تنفيذها حتى لا تقلق بشأن التفاصيل الفنية.

حقًا ، مزيج أفضل وآمن رأيته حتى الآن.

على افتراض أنك لا تحتاج إلى شيء منصة لاأدري ، فإن الجيل التالي من التشفير (CNG) هو واجهة برمجة تطبيقات تشفير جديدة نسبيًا على Windows وهي بديهية وسهلة الاستخدام. كتبت مقالًا يتضمن أمثلة لجميع عمليات التشفير الرئيسية التي من المحتمل أن تحتاجها في التطبيقات النموذجية. يوفر رمز العينة للمقالة أيضًا مثالًا عملًا كاملاً لهذه العمليات باستخدام برنامج التحويل البرمجي C ++ المرئي.

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

لعلاج المفاتيح العامة والخاصة كقواسل ، يمكنك ببساطة استخدام BASE64 أو تشفير مماثل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top