تتميز وظيفة RND () الخاصة بـ VISUALBASIC بميزة مهمة: عندما تكون معلمة RND () (يمكننا أن نسميها بذرة هنا) قيمة سالبة، فإن نفس البذرة (القيمة السالبة) تولد نفس التسلسل الرقمي العشوائي. وفي الوقت نفسه، يتمتع VISUALBASIC أيضًا بوظائف تقنية ثنائية قوية، حتى نتمكن من تحقيق تشفير محتوى الملف وفقًا للأفكار التالية:
X=RND(-مفتاح)
'KEY هو رقم موجب
VAULE=INT(256*RND)'أنشئ رقمًا عشوائيًا (استخدمه ككلمة مرور)
OpenFILENAME$ForBinaryAs#FILENUM'فتح الملف
Get#FILENUM,I,A'الحصول على محتوى الملف
B=AXORVAULE'الحصول على ملف مشفر
يجمع
C=BXORVAULE' يحصل على الملف الذي تم فك تشفيره (B هو محتوى الملف المشفر)
ملحوظة: هنا ليس محتوى الملف بأكمله، يمكن أن يكون جزءًا صغيرًا جدًا، بضع بايت أو حتى بايت واحد إذا كان بايتًا واحدًا، فسيتم XORed لكل بايت في الملف برقم مختلف، مما يجعله من الصعب فك كيف كبيرة. عملية محددة:
معلمات SubENDECODE(FILENAME$,MA,FILE2$)' هي: الملف المصدر، كلمة المرور، الملف الهدف
DimFILENUMAsInteger,XAsSingle,IAsSingle
DimCHARNUMAsInteger,RANDOMINTEGERAsInteger
DimSINGLECHARAsString*1,filen2AsInteger' يأخذ بايتًا واحدًا
IfMA<0هم
MA=MA*(-1)
EndIf
X=Rnd(-MA)'المعلمة سالبة
FILENUM=FreeFile
OpenFILENAME$ForBinaryAs#FILENUM'ملف مفتوح المصدر في الوضع الثنائي
filen2=FreeFile
OpenFILE2$ForOutputAs#filen2'افتح الملف الهدف في ملف متسلسل
ForI=1ToLOF(FILENUM)'LOF() طول الملف بالبايت
Get#FILENUM,I,SINGLECHAR'احصل على محتوى أحادي البايت
CHARNUM=تصاعدي(SINGLECHAR)
RANDOMINTEGER=Int(256*Rnd)'احصل على الحروف الأبجدية
CHARNUM=CHARNUMXأوRANDOMINTEGER'XOR
PRint#filen2,Chr$(CHARNUM);'اكتب إلى الملف الهدف
التاليأنا
أغلق الملف
كلوزفيلين2
"موافق" يستدعي مربع حوار النجاح
EndSub
تنسيق الاتصال: اسم الملف المصدر ENDECODE، وكلمة المرور، واسم الملف الهدف
يمكن للعملية المذكورة أعلاه تشفير وفك تشفير أي ملفات EXE وCOM والنص وغيرها من الملفات (عدد فردي من مرات التشفير، وعدد زوجي من مرات فك التشفير)، مع إمكانية تكرار نتائج ممتازة وسرية ممتازة إذا تمت معالجة العملية المذكورة أعلاه بشكل أكبر، مثل المعالجة العشوائية المتعددة ، ثم سوف ينتقل إلى مستوى أعلى، وهو ما لن أكرره هنا.
بالمناسبة، إذا كانت العملية المذكورة أعلاه تفتح أيضًا الملف الهدف وتكتبه كملف ثنائي، فيمكن تشفير وفك تشفير النص الغربي النقي فقط بالنسبة للنص الصيني النقي، ويتم تعديله ليأخذ بايتًا مزدوجًا وحجم الخطوة I هو 2. التنفيذ، لن تحصل الملفات الأخرى (النص الصيني والغربي المدمج، EXE، COM وغيرها من الملفات) على النتائج المتوقعة، وقد يكون السبب هو أنه لا يمكن عرض الأحرف التي تحتوي على ASCII أكبر من 127 بشكل طبيعي، ولا يمكن كتابة الملف بشكل طبيعي باستخدام. عبارة الوضع (المساحة فقط)، قد يرغب المهتمون في تجربتها.
->