الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اريد عمل تشفير لنص

مغلق
بدأه abualaa في 3 مايو 2005 · 8 رد · 995 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اريد عمل تشفير لنص من خلال لغة البرمجة السي او السي ++

وفكرة البرنامج هي ان يكون لك ملف مكتوب به كلام وعند تنفيذ البرنامج يقوم بتشفيرة ,وفي الحالة الثانية يكون ايضا برنامج اخر لفك التشفير اي عند تنفيذة يقوم بفك تشفير النص المشفر الذي تم تشفيرة

ولكم مني جزيل الشكر

ابوعلاء

#2

اهلا بك يا أخي سأعطيك فكرة كود التشفير

غالبا ما تبنى الفكرة على تحويل الحرف إلى الاسكي كود المقابل لها ثم يتعم تطبيق بعض العمليات عليها سواء جمع او ضرب او قسمة وتعكس هذه العمليات عند فك التشفير فمثلا

لو اردت ان تحول الحرف إلى ما بعده بخمس حروف مثلا فبعد تحويل الحرف إلى الاسكي كود المماثل له تكتب هكذا

ch=ch+5

ولفك التشفير تقوم في دالة او برنامج (حسب ماتقوم به) بكتابة العلاقة بطريقة عكسية

ch=ch-5

ولا تنسى طبعا تحويل الاسكي كود إلى حرف مرة أخرى

أتمنى أن يفيدك هذا

#3

مثل ماقال اخوي TORNADO_pro

وهذه أسهل طريقه

وهناك طرق كثيره غيرها

مثلاً

يكون عندك نص ثابت ونص أصلي بالأحرف الصغيره

النص الثابت يسمى key

ثم تحسب إزاحة كل حرف له :

a=0

b=1

.

.

.

z=25

وتضيفه الى الحرف المقابل في النص الأصلي وتحوله إلى حرف كبيـر

Key : deceptive

Original : wearedisc

encrypted text : ZICVTWQNG

, ,

هناك طرق أخرى مثل حسـاب تكرار الحرف ’ واعلى نسبه يعطى قيمه معينه

#4

طيب لو ممكن تكتبلي البرنامج او جزء منو لاني انا مش كتير شاطر بالسي

وشكرا

#5

تفضـل

#include<iostream>
using namespace std;
#include<string>

void main()
{

   char a[27],b[27],c[27];
	cout<<"Enter Your Key " <<endl;
	for(int i=0;i<27;i++)
  cin>>a;


  
	cout<<"Enter Your text " <<endl;
	for(int j=0;j<27;j++)
  cin>>b[j];



	// Encrypted Text IS  :

	cout<<endl<<endl<<"====================="
  <<endl<<endl<<"   Cipher text is  : "
  <<endl<<endl<<"====================="<<endl<<endl;

	int mov;
	for(int k=0;k<27;k++)
	{
  mov=a[k]-'a';
  c[k]=b[k]+mov;
  c[k]-=32;
	}

	for(int l=0;l<27;l++)
  cout<<c[l];
	cout<<endl<<endl;




	cout<<endl<<endl<<"====================="
  <<endl<<endl<<" Original message is : "
  <<endl<<endl<<"====================="<<endl<<endl;


  int move;
	for(int u=0;u<27;u++)
	{
     c+=32;
  move=a-'a';
  c=c-move;
  
	}

  for(int s=0;s<27;s++)
  cout<<c;
	cout<<endl<<endl;

}

تم تعديل هذه المشاركة بواسطة {عيسى} في 6 مايو 2005 في 14:27

#6

السلام عليكم

كيف حالك اخ ابو علاء ,انا بصراحة شاهدت طلبك الذي اضفته في المنتدى وانا بصراحة حبيت ان اساعدك لسبب واحد هو انني زرت موقعك واعجبني كثيرا واستفدت من اشياء كثيرة به , فشكرا لك .

فاليك المشروع الذي حصلت علية من احد اصدقائي المحترفين في البرمجة لاني بصراحة انا ليس لدي خبرة في هذة المواضيع والبرامج بل طلبته منة فقط من اجلك.

مع تحياتي

هاذا كود التشفير:

#include <fstream.h>
#include <iostream.h>
#include <ctype.h>
void main()
{
int count=1;
char ch;

char a[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ','\n'};

char b[]={'z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a',' ','\n'};

char c[]={'a','e','i','m','q','u','y','b','f','j','n','r','v','z','c','g','k','o','s','w','d','h','l','p','t','x',' ','\n'};

char d[]={'z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a',' ','\n'};

char f[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ','\n'};

char h[]={'z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a',' ','\n'};


ifstream input("insert.txt");
ofstream output("view_en.txt");

while(input)
{
   if(count>5)
   count=1;
   input.get(ch);

if(isalpha(ch))
{

if(count==1)
{
  output.put(b[(ch-97)]);
}

if(count==2)
{
  output.put(c[(ch-97)]);
}

if(count==3)
{
  output.put(d[(ch-97)]);
}

if(count==4)
{
  output.put(f[(ch-97)]);
}

if(count==5)
{
  output.put(h[(ch-97)]);
}


/////////////////////////////////////////////////

} 
else if(ch==' ')
     {

if(count==1)
  {
  output.put(b[26]);
  }
if(count==2)
  {
  output.put(c[26]);
  }
if(count==3)
  {
  output.put(d[26]);
  }
if(count==4)
  {
  output.put(f[26]);
  }
if(count==5)
  {
  output.put(h[26]);
  }

      }

else if(ch=='\n')
{

if(count==1)
  {
  output.put(b[27]);
  }
if(count==2)
  {
  output.put(c[27]);
  }
if(count==3)
  {
  output.put(d[27]);
  }
if(count==4)
  {
  output.put(f[27]);
  }
if(count==5)
  {
  output.put(h[27]);
  }


}
count++;
}
}
#7

وهاذا كود فك التشفير:

#include <iostream.h>
#include <fstream.h>
#include <ctype.h>
void main()
{
 char ch;
 int x;
 int count=1;

char a[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ','\n'};

char b[]={'z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a',' ','\n'};

char c[]={'a','e','i','m','q','u','y','b','f','j','n','r','v','z','c','g','k','o','s','w','d','h','l','p','t','x',' ','\n'};

char d[]={'z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a',' ','\n'};

char f[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ','\n'};

char h[]={'z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a',' ','\n'};


ifstream input("view_en.txt");
ofstream output("view_dec.txt");

 while(input)
 {
   if(count>5)
   count=1;
   input.get(ch);

if(count==1)
{
  for(int z=0;z<=27;z++)
    {
      if(ch==b[z])
	output.put(a[z]);
    }
}

if(count==2)
{
  for(int z=0;z<=27;z++)
    {
      if(ch==c[z])
  output.put(a[z]);
    }
}

if(count==3)
{
   for(int z=0;z<=27;z++)
     {
       if(ch==d[z])
   output.put(a[z]);
    }
}

if(count==4)
{
   for(int z=0;z<=27;z++)
     {
       if(ch==f[z])
  output.put(a[z]);
   }
}

if(count==5)
{
   for(int z=0;z<=27;z++)
     {
       if(ch==h[z])
   output.put(a[z]);
    }
}

count++;
 }
}
#8

شوف هذا مثال أبسط و أسهل طريقه xOR

message XOR key = Encrypted Message

Encrypted Message XOR key = message

كتبتها لك كلها في داله واحده :-

char *encrypt_decrypt(long key,char *string)
{
	int len;
	len = strlen(string);
	for(int i=0;i<len;i++)
	{
  string = string ^ key;
	}
	return string;
}

مثال :-

#include "string.h"
#include "iostream.h"

char *encrypt_decrypt(long key,char *string);
char *encrypt_decrypt(long key,char *string)
{
	int len;
	len = strlen(string);
	for(int i=0;i<len;i++)
	{
  string = string ^ key;
	}
	return string;
}


int main(int argc, char* argv[])
{
	char m[128];
	long key;
	cout <<" enter a message to encrypt :\n";
	cin >> m;
	cout << "enter your key\n";
	cin >> key;
	char *enc = encrypt_decrypt(key,m);
	cout << "encrypted : \n"<<enc<<endl;
	cout << "decrypted : \n"<<encrypt_decrypt(key,enc)<<endl;

	return 0;
}

أستخدم هذه الطريقه لو كانت الرساله في ملف أو كنت تريد تشفر ملف كاملاً ، ماينفع تنسخ النتاج و تضعه بملف نوتباد او ووورد لأنه يجي في حروف غريبه مثل Æ₧Öûùò أنا عندي يطلع ؟؟؟؟؟؟

تم تعديل هذه المشاركة بواسطة v1r05 في 8 مايو 2005 في 09:36

#9

السلام عليكم انا بصراحة بشكرك كتير اخ عيسى على تعبك معايا وإن شاء الله نردلك اياها في اقرب فرصة

كذلك بحب اشكر اخي الفاضل the prince على الجهد الي عملو من اجلي وانا سعيد جدا بزيارتك الموقع واستفادتك منه وإن شاء الله نشوفك دايما بالموقع.

كذلك شكرا لك اخي العزيز v1r05 على ردك علي وانا الحمد لله عرفت الطريقة المناسبة لي واستخدمتها

فشكرا للجميع....

ابوعلاء

هذا الموضوع مغلق.

مواضيع مشابهة