 بسم اللہ الرحمن الرحیم آج ہم موڈیول 23 دسکریں گے موڈیول 23 ہے انکریپٹنگ فائلز انکریپٹنگ ایک بہت پرانی تکنیگ ہے پرانے زمانے میں رومن امپایر کے زمانے میں وہ اپنی جب جنگیں لڑتے تھے تو بڑی جو سنسٹیف کسم کی انفرمیشن ہوتی تھی اس کو انکریپٹ کرتے تھے اور وہ بڑا ایک سمپل سا اس کے لیے ایک آلگورضم use کرتے تھے انکریپٹنگ کے لیے جس کو کہتے ہیں سائفر سیزر سائفر جو ہے وہ ایک بڑا سمپل سا آوگردم ہے سیزر سائفر کیا کرتا ہے کہ ہر آلفا بیٹ کو for example a ہے اس کو ایک دفرنٹ آلفا بیٹ سے ریپلیس کر دے گا اور دوسرا جو آلفا بیٹ اس کی جگہ وہ کہاں سے آئے گا a سے اگر سنگل ٹاب کریں تو آگے جائیں a سے تو b آتا ہے یا پھر دول ٹاب کریں دو آگے جائیں تو c آتا ہے ایک جگہ c رہنے ٹرپل ٹاب کریں ایک جگہ d رہنے and so on کچھ بھی ہو سکتا تو اس طرح سے وہ پورا جتنا بھی ٹیکسٹ ہے اس کو چینج کر داتے ہیں اب جب اس طرح سے وہ ٹیکسٹ چینج ہوگا تو وہ کسی کی سمجھ میں نہیں آئے گا تو وہ سائفر کل آئے گا سائفر ٹیکسٹ تو اس کے لیے of course آلگردن بنے میں ہم نے کمپیوٹر کئی پوگرامز بھی بنائے میں جو کہ بالکل اس طریقے سے ہمارے دیتا کو ہمارے ٹیکسٹ کو فائلز کو انکرپٹ کر سکتے ہیں تو exactly اسی طرح کا کچھ ہم کام کریں گے ہمیں ایک چھوٹا سا پوگرام بنائیں گے جو کہ اسی طرح سیزر سائفر کو use کرتے ہوئے ماری فائلز کو انکرپٹ کر سکے ہیں اس کے اندر جو ٹیکسٹ جس کو کہ ہم نے انکرپٹ کرنا ہوتا وہ کلاتا ہے پلین ٹیکسٹ ایدر جس طرح آپ سلائٹ کے اندر دیکھ سکتے ہیں کہ جو پلین ٹیکسٹ ہے وہ پی ہے اور جب انکرپٹ ہونے کے بعد جو آپ کے پاس ٹیکسٹ آتا ہے وہ سائفر ہے سائفر ٹیکسٹ ہے that is c تو آپ پلین ٹیکسٹ کے اندر کچھ آڈ کریں گے جس طرح اگر a ہے a کے اندر آپ نے one آڈ گیا تو b آڈ گیا یا two آڈ گیا تو c آڈ گیا three آڈ گیا تو d آڈ گیا اور پھر اس کا mord بھی لے رہے ہیں آپ mord twenty six کے ساتھ لے رہے ہیں mord twenty six کے ساتھ اس لی لے رہے ہیں کیونکہ total twenty six characters ہیں اور جب آپ z بھی پہنچیں گے تو z اگر twenty six ہے z plus two twenty eight آڈ گیا لیکن mord twenty six لیں گے تو two آڈ گیا two کا مطلب وہ b تو z کی جگہ آپ b کی استعمال کریں گے y کی جگہ آپ ایک استعمال کریں گے تو اس کو circular بنانے کے لیے mord کا function use ہو رہا ہے لیکن جو ہم algorithm use کریں گے وہ of course twenty six characters کیلیے نہیں use کریں گے کیونکہ ہماری files کے اندر text files کے اندر as کی characters ہوتے وہ total two fifty six ہیں یا bytes ہیں تو وہ bytes کی values zero سے لے کے 55 ہو سکتی ہے تو اس لیے two fifty six some mord use کریں گے تو exactly سیزر سیفر نہیں ہے اسے ملتی جلتا ہی algorithm ہے کیونکہ سیزر سیفر تو صرف text کے لے کام کرا ہے لیکن ہم باقی دوسرے characters کے اوپر بھی یہی سیفر اپلاے کرا رہے ہیں جتنے بھی as کی characters ہیں تمام as کی characters کو ہم اس two fifty six والے سیفر کی مدل سے encrypt کریں گے is program کی طرف چلتے ہیں اس program کے اند آپ arguments pass کریں argument c کے اندر count آجائے گا argument v کے اندر file names آجائیں گے آپ کے پاس ایدر جس طرح یہ شو کر رہا ہے تین arguments ہو سکتے ہیں پہلا argument shift کی کتنی دفعہ shift کرنے one tap کرنے two tap کرنے three tap کرنے whatever اور باقی دونوں files کا نام ایک file جو جس نے encrypt ہونے اور دوسری جس کے اندر encrypt ہو کر save ہوگا تو اگر آپ نے four arguments نہیں pass کی ایرر آجائے گا اور پھر CCIF جو ہے یہ آپ کا function ہے اس کو آپ 2nd اور 3rd argument جو کے آپ کے file names ہیں وہ آپ pass کریں اور دیکھیں کوئی ایرر تو نہیں آیا CCIF پہ چلتے ہیں CCIF آپ کا Caesar cipher ہے یہ encryption پر پرفوم کرے گا اس نے دو strings لیے وہ دونوں strings جو ہے ہمارے file کا path یا file کا name ہے یہ کیا کرے گا آپ یہاں پر دیکھ سکتے ہیں پہلے یہ create file کرے گا c in کے لیے as file name use کرتے بے file create کرے گا یہ دیکھ رہا ہے کہ شاہد وہ file پہلے سے created ہے اگر created ہے تو اس کو وہ create کرے گا اور اس کا handle h in کے اندر آ گیا اور in case in valid handle آتا ہے کسی وجہ سے تو یہ return کر دے گا جو f out دوسری والی output file ہے اس کو بھی create کیا create always کر کے کیونکہ یہ جو output file ہے ہوسکتا پہلے سے exist نہ کرتی ہو اگر پہلے سے exist نہیں کرتی تو create always کی مدہ سے اس کو create کرے گا اور in case of error تو وہ یہ کرے گا close handle کرے گا اور return کر جائے گا ان case کوئی error نہیں آتا تو یہ ایک loop کے اندر ایک file کو read کرے گا کتنا file کو read کرے گا buffer جو اس نے ایک buffer define کیا گا buffer جو ہے وہ آپ کا ایک variable define ہوا ہے اور اس variable کا جو بھی آپ نے size رکھا ہوا ہے 256 512 جو بھی آپ نے size رکھا ہوگا اتریں bytes اس نے یہاں سے read کیا read کرنے کے بعد actual number of bytes وہ n in کے اندر آ گیا اور جتریں bytes ان کو وہ copy کرے گا buffer کیوں پر اس کو پہلے b shift کرے گا b shift کا مطلب وہی آپ کے taps ہو رہے گا Caesar cipher اپلائے ہو رہے گا اور ان کو tab کرنے کے بعد buffer کے اندر واپس store کر دے گا اور پھر اس buffer کو ہماری جو file ہے اس کے اوپر write کر دیا جائے گا یعنی کہ اس نے ایک file open کیا وہاں سے buffer read کیا اس کے اوپر shift اپلائے کیا جو کہ ہمارا Caesar cipher کا operation ہے اور ان تمام bytes کو واپس output file کو پر write کر دیا ایسا وہ کرتا جائے گا جب تکہ file جو ہے وہ پوری طرح سے write نہیں ہو جاتی جب تک write okay ہے جب تک file complete نہیں ہو جاتی end of file نہیں ہو جاتا یہ چلتا رہ گا اور جب complete ہوگا تو یہ دونوں files کو close کر دے گا close handle کی مدل سے دونوں files کو close کر دے گا in the end آپ کے پاس کیا result آ گا آپ کے پاس ایک encrypted file آئے گی اور پھر آپ اسی Caesar cipher کو use کرتے ہوئے اسا encrypted file کو واپس decrypt بھی کر سکتے ہیں دیمو کی مدل سے ہم دیکھیں گے کسی طرح آپ نے encrypt کرنا اور کسی طرح آپ اس پوگرام کو use کرتے ہوئے decrypt کریں گے