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

Steganograph

بدأه ghith-js في 6 مايو 2012 · 0 رد · 481 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1

سلام عليكم ورحمة الله عندي سؤال عن التشفير وفك التشفير

Write a program area (extract) contains zhimogo text file into the body (the body) graphics file. You can use the method of least significant bits (Lasst Significant Bit, LSB). For example, full-color files in RGB format code for each pixel is three bytes to represent respectively the red, green and blue components. Change each of the three least significant bits (bits concealed recording messages) will change the color of a given point of less than 1%, which is entirely imperceptible. Thus the file size of 800 kilobytes can hide a message of up to 100 kilobytes. Methods to hide the

very presence of confidential information steganography called

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls;

type

TForm1 = class(TForm)

ButtonGraphOK: TButton;

BMPFileNameEdit: TEdit;

BMPFileOpenDlg: TOpenDialog;

lbbmpfilename: TLabel;

TextFileNameEdit: TEdit;

TextFileOpenDlg: TOpenDialog;

lbtextfilename: TLabel;

ButtonTextOK: TButton;

ButtonEncrypt: TButton;

KeyEdit: TEdit;

lbKeyStep: TLabel;

PageControl1: TPageControl;

TSEncryption: TTabSheet;

TSDecryption: TTabSheet;

BMPCryptFileNameEdit: TEdit;

lbBMPCryptFileName: TLabel;

KeyFileNameEdit: TEdit;

lbKeyFileName: TLabel;

ButtonBMPCryptFileOK: TButton;

ButtonKeyFileOK: TButton;

ButtonDecryption: TButton;

BMPCryptFileOpenDlg: TOpenDialog;

KeyFileOpenDlg: TOpenDialog;

procedure ButtonGraphOKClick(Sender: TObject);

procedure ButtonTextOKClick(Sender: TObject);

procedure ButtonEncryptClick(Sender: TObject);

procedure ButtonBMPCryptFileOKClick(Sender: TObject);

procedure ButtonKeyFileOKClick(Sender: TObject);

procedure ButtonDecryptionClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Picture;

{$R *.dfm}

var Picture:TPicture;

BinFileText:TTextBinFile;

CharFileText:TTextCharFile;

Key:TKey;

procedure TForm1.ButtonGraphOKClick(Sender: TObject);

var FileName:string;

begin

BMPFileOpenDlg.FileName := BMPFileNameEdit.Text;

if BMPFileOpenDlg.Execute

then BMPFileNameEdit.Text := BMPFileOpenDlg.FileName;

FileName:=BMPFileNameEdit.Text;

Picture:=TPicture.Create(FileName);

end;

procedure TForm1.ButtonTextOKClick(Sender: TObject);

var FileName:String;

begin

TextFileOpenDlg.FileName:=TextFileNameEdit.Text;

if TextFileOpenDlg.Execute

then TextFileNameEdit.Text := TextFileOpenDlg.FileName;

FileName:=TextFileNameEdit.Text;

BinFileText:=TTextBinFile.Create(FileName);

end;

procedure TForm1.ButtonEncryptClick(Sender: TObject);

var bytetxt:arbyte;

PicFileName:string;

Step:integer;

begin

Step:=StrToInt(KeyEdit.Text);

Key:=TKey.Create(Step,BinFileText.Size);

bytetxt:=BinFileText.ByteRead;

with Key do

Picture.WriteBits(bytetxt,key);

PicFileName:=Picture.FileName;

Picture.SavePicture(PicFileName);

Key.SaveToFile(PicFileName);

end;

procedure TForm1.ButtonBMPCryptFileOKClick(Sender: TObject);

var FileName:String;

begin

BMPCryptFileOpenDlg.FileName := BMPCryptFileNameEdit.Text;

if BMPCryptFileOpenDlg.Execute

then BMPCryptFileNameEdit.Text := BMPCryptFileOpenDlg.FileName;

FileName:=BMPCryptFileNameEdit.Text;

Picture:=TPicture.Create(FileName);

end;

procedure TForm1.ButtonKeyFileOKClick(Sender: TObject);

var FileName:String;

KeyRecord:TKeyRecord;

begin

KeyFileOpenDlg.FileName:=KeyFileNameEdit.Text;

if KeyFileOpenDlg.Execute

then KeyFileNameEdit.Text := KeyFileOpenDlg.FileName;

FileName:=KeyFileNameEdit.Text;

KeyRecord:=Key.ReadFromFile(FileName);

Key:=Tkey.Create(KeyRecord.Step,KeyRecord.TextFileSize);

end;

procedure TForm1.ButtonDecryptionClick(Sender: TObject);

var bytetxt:arbyte;

FileName:String;

begin

with Key do

begin

SetLength(bytetxt,key.TextFileSize);

bytetxt:=Picture.ReadBits(key);

FileName:=Picture.FileName;

Delete(FileName,Length(FileName)-2,3);

FileName:=FileName+'txt';

CharFileText:=TTextCharFile.Create(FileName);

CharFileText.ByteWrite(bytetxt,key);

end;

end;

end.