سفر خاک

یادداشت های غلامحسین توسلی

سفر خاک

یادداشت های غلامحسین توسلی

جز غبار از سفر خاک چه حاصل کردیم؟ / سفر آن بود که ما در قدم دل کردیم

معرفی ++Crypto و کامپایل و استفاده از آن در ویندوز

چهارشنبه, ۱۰ ارديبهشت ۱۳۹۳، ۰۲:۰۰ ب.ظ

برای یک برنامه کاربردی که با زبان ++C نوشتم نیاز به ارتباط رمزنگاری شده با برنامه‌ای دیگه پیدا کردم که منجر شد به  استفاده از کتابخانه ++Crypto. ممکنه بپرسید چرا ++C. خوب یه دلیل بیشتر نداره! واسه نوشتن برنامه Desktop چارچوب Qt رو به زبان هایی مثل Net. و جاوا ترجیح میدم! ++Crypto یک کتابخانه رمزنگاری رایگان به زبان ++C است. یه ریزه کامپایلش تو ویندوز کار داره. بعد از معرفی اجمالی نحوه کامپایل این کتابخانه رو تو ویندوز توضیح میدم.


این کتابخانه تعداد زیادی از الگوریتم‌های رمزنگاری و hashing رو پیاده‌سازی کرده که می‌تونید فهرست کامل اون رو از وب سایت کتابخانه مشاهده کنید. این کتابخانه شامل ویژگی های دیگه ای نظیر موارد زیر نیز هست.

  • تولید اعداد شبه تصادفی
  • پشتیبانی از بخشی از استاندارد های PKCS#5 و PKCS#12
  • محاسبات سریع بر روی اعداد صحیح بزرگ
  • تولید اعداد اول و بررسی اول بودن یک عدد
  • الگوریتم های فشرده سازی مثل gzip، zlib
  • تولید کدهای CRC32 و Adler32
  • تایمر با دقت بالا مبتنی بر API سیستم عامل های Windows، Unix و Mac OS
  • توانایی ایجاد سوکت های مدل Berkeley و ویندوز
  • دارای کدهای اسمبلی x86، x86-64, MMX, SSE2 برای پیاده سازی الگوریتم‌های پر استفاده؛ این کدها در زمان اجرا CPU را تشخیص داده و کد مناسب را انتخاب و اجرا می‌کند.

برای مقایسه کارایی این کتابخانه از نظر سرعت با سایر کتابخانه های مشابه می تونید به اینجا مراجعه کنید. کتابخانه ++Crypto در رده دوم (بعد از Libmcrypt) قرار میگیره؛ خود وب سایت ++Crypto هم مقایسه ای رو گذاشته که می تونید از اینجا نتایج مقایسه رو ببینید.

بریم سر وقت نصب این کتابخانه بر روی ویندوز. مشکل اصلی برای نصب این کتابخانه در ویندوز makefile است. این کتابخانه رو من با استفاده از کامپایلر gcc کامپایل کردم. برای اینکه این کامپایلر رو تو ویندوز داشته باشید بهتره از پروژه MinGW استفاده کنید. این کامپایلر به همراه چارچوب Qt نیز قابل نصبه. مراحل زیر رو برای کامپایل کتابخانه دنبال کنید:

1. کد منبع کتابخانه رو از اینجا دانلود کنید.

2. اونو تو مسیر c:\cryptopp extract کنید.

3. نام فایل adhoc.cpp.proto رو به adhoc.cpp تغییر دهید.

4. فایل GNUmakefile رو مطابق با دستورات زیر ویرایش کنید

  • از خط دوم تا خط خالی پیش از SRCS = $(wildcard *.cpp) را پاک کنید.
  • خط $(RANLIB) $@ را حذف کنید.
  • از خط adhoc.cpp: adhoc.cpp.proto تا اولین خط خالی بعد رو پاک کنید.
  • خط های LDLIBS += -lws2_32 و ARFLAGS = rc را به ابتدای فایل اضافه کنید.

5. خط فرمان ویندوز رو باز کنید و دستورات زیر رو اجرا کنید. دقت کنید کامپایلر gcc که با MinGW نصب شده است در مسیر سیستم (%PATH%) اضافه شده باشد.

  • cd C:\cryptopp
  • mingw32-make
  • mingw32-make test
  • mkdir include\cryptopp
  • mkdir lib
  • copy *.h include\cryptopp
  • copy *.a lib

اگه همه چی با موفقیت انجام بشه شما تو مسیر lib به فایل‌های کامپایل شده کتابخانه و تو مسیر include به هدر فایل‌های مورد نیاز دسترسی خواهید داشت.


--------------------------------------------------------------------

مرجع: https://sites.google.com/site/ievgensychov/cryptopp

نظرات (۰)

هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی