blog.rayanoos.ir 1397/01/4 10:35
در این پست تابعی را در اختیارتان میگذاریم که با استفاده از آن می توانید متن هارا رمزنگاری، و به حروف بی معنی تبدیل کرده و سپس متن رمزنگاری شده را مجددا ترجمه کرده و به حالت اول برگردانید


درحقیقت این تابع ، متن را به صورت پوینتر کاراکتری گرفته و با چندین بار جابه جایی حروف آن متن را تغییر می دهد. به عنوان مثال A تبدیل می شود به H ،  و H تبدیل می شود به I و...

در نهایت   www.Rayanoos.ir  تبدیل می شود به ttt.Jhnhfbbs.xj4

و اگر متن رمزنگاری شده را برای ترجمه وارد کنیم ، همان متن اولیه را برمیگرداند.

نکته قابل توجه این است که این جایگذاری ها مشخص نیستند، برای مثال ممکن است A تبدیل شود به F اما در یک متن دیگر A تبدیل شود به R

دلیل آن چند بار رمزنگاری شدن به صورت رندوم است،  تابع به تعداد یک عدد رندوم متن را رمزنگاری می کند و سپس آن عدد را به آخر متن رمزنگاری شده اضافه می کند، از این رو هنگام ترجمه آن عدد که آخرین کاراکتر متن است گرفته می شود و به تعداد آن عدد، متن ترجمه می شود.

این تابع در هدر فایل turing.h قرار دارد که میتوانید با include کردن آن در برنامه هایتان و با استفاده از تابع


turing(char *str,int TOPAS_OR_TOSTR,int strsize)

متن را رمز نگاری کنید که می بایست در اولین پارامتر آن متن خود را به صورت یک آرایه کارکتری و در پارامتر آن  رمزنگاری شدن یا ترجمه شدن متن و در پارامتر سوم طول آرایه خود را وارد کنید.
نکته : برای رمزنگاری متن در پارامتر دوم می بایست TOPAS را وارد کرده و برای ترجمه TOSTR را وارد کنید.

تابع میتواند به شکل زیر فراخوانی شود:
[1024]char str
gets(str)
turing( str , TOPAS , sizeof(str))
printf("%s",str)


دانلود سورس کد | کلیک کنید | Main.c & Turing.h