Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Шифрование изображения [D7, WinXP]


Страницы:   1 2

oren_yastreb ©   (2011-03-11 15:57:00) 

Добрый день!

У меня программа получает изображение со сканера, отображает его в компоненте image и после сохраняет в файл bmp. Сказали чтобы данный файл должен быть зашифрован. Перерыл инет, ничего не нашел для решения проблемы.

Подскажите как зашифровать файл bmp? Чтобы он не открывался на просмотр. Планируется что при сохранение файл будет шифроваться а при просмотре сначала расшифровываться а потом открываться.


xmen   (2011-03-16 08:28:00) [1]


> Я тоже могу найти на всемирной помойке кучу реализаций различного
> шифрования всего, чего угодно. Но приводить на форуме ДМ
> пример на Си я не стану без должных оснований.


а я вот привел свой код и ссылку на материал как теоретический, так и реализацию на дельфе и что?


Германн   (2011-03-16 02:07:00) [2]


> xmen   (15.03.11 21:51) [23]
>
> Шифр Виженера
>

Я тоже могу найти на всемирной помойке кучу реализаций различного шифрования всего, чего угодно. Но приводить на форуме ДМ пример на Си я не стану без должных оснований.


xmen   (2011-03-15 21:51:00) [3]

Шифр Виженера

http://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%84%D1%80_%D0%92%D0%B8%D0%B6%D0%B5%D0%BD%D0%B5%D1%80%D0%B0

http://zetblog.ru/programming/200812/%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F-%D1%88%D0%B8%D1%84%D1%80-%D0%B2%D0%B8%D0%B6%D0%B5%D0%BD%D0%B5%D1%80%D0%B0-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC/


//---------------------------------------------------------------------------

#include

#include

#pragma hdrstop

#include

#include

#include

#include

#include

#include "codes.h"

void DecodeStr( char *, char *, int, char * );

void CodeStr( char *, char *, char * );

void CodeFile( char *, char *, char * );

void DecodeFile( char *, char *, char * );

int CheckKey( char * );

unsigned char GetChar( int, int );

double GenerateSignature( char * );

double SqrMN( int, int );

#pragma argsused

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)

{

       return 1;

}

//---------------------------------------------------------------------------

double SqrMN( int m, int n )

{

  double res=m;

  for( int x=1; x


OW   (2011-03-15 15:32:00) [4]

не, она просто хреновая была,
на коленке, за 2 минуты писана, человеком пару месяцев программить начавшем


Anatoly Podgoretsky   (2011-03-15 15:05:00) [5]

> OW  (15.03.2011 14:51:20)  [20]

Конечно хреновая, если так просто можно посмотреть пароль.


OW   (2011-03-15 14:51:00) [6]


> это не спортивно.

зато дешево и надежно :)
каша в первом кб и расширение еще другое

помню как то, еще на BP одному писал под дос. От брата шифровался он, якобы, мне так сказал, во всяком случае. Типа файлик сломан, программа его  поправляла и показывала. Как то так, не суть, не в этом дело.
Да собственно ни в чем не дело :-), так просто, как совет, если автор не понял и вспомнить :)

Короче, перед запуском спрашивала пароль. Правильный - работает, нет- нет.
Через месяц он мне говорит - фиговая программа, типа, обойти можно.
Ну, думаю, научился наконец то, в файлах разбирается
Нет :)
Говорит он ее (*.exe) открыл в dasm каком то и сидел смотрел построчно для него полные кракозябры. Пока где то пароль не встретился (db xxxx)


Германн   (2011-03-15 03:24:00) [7]

И пофигу стандартное предупреждение Дельфийского хелпа  о возможных проблемах с использованием Random в функциях шифрования!


Palladin   (2011-03-15 01:14:00) [8]

это будет типа "свой формат"...
хрениум программикус отакэ...


clickmaker   (2011-03-14 22:24:00) [9]

> Заголовок поменяй. Делов-то...

это не спортивно. Да и любой школьник взломает


oldman   (2011-03-14 20:35:00) [10]


> Подскажите как зашифровать файл bmp? Чтобы он не открывался
> на просмотр.


Заголовок поменяй. Делов-то...


sniknik   (2011-03-14 17:48:00) [11]

> так randomize вроде нет :)
ага, и RandSeed := Key; поначалу не заметил ;(

дико раскаиваюсь... ;)


clickmaker   (2011-03-14 16:37:00) [12]

> xor Random(256);

аффтар уехал за нобелевкой походу. Как изобретатель практически невзламываемого шифра


Smile   (2011-03-14 16:37:00) [13]

> Anatoly Podgoretsky ©   (11.03.11 16:23) [7]

Не вижу никакой разницы в алгоритмах шифрования какой бы то ни было информации.
Будь то DOC, XLS. BMP, JPEG, ...  или какая либо другая информация.

>oren_yastreb   (11.03.11 16:12) [3]
> а открывался только через программу, которая будет его расшифровывать

так это проблема твоей программы
:)


OW   (2011-03-14 16:20:00) [14]


> > xor Random(256);
> ? дескрипт так понимаю не нужен.
>

так randomize вроде нет :)


sniknik   (2011-03-12 12:13:00) [15]

> решить проблему
???
ты только, что ее себе создал. из ничего...

битмап как контейнер данных, оригинально...  

> xor Random(256);
? дескрипт так понимаю не нужен.


oren_yastreb   (2011-03-12 10:59:00) [16]

вот как получилось решить проблему

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Edit1: TEdit;
   Edit2: TEdit;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure EncryptBMP(var BMP: TBitmap; Key: Integer);
var
  BytesPorScan: Integer;
  w, h: integer;
  p: pByteArray;
begin
  try
    BytesPorScan := Abs(Integer(BMP.ScanLine[1]) -
      Integer(BMP.ScanLine[0]));
  except
    raise Exception.Create('Error');
  end;
  RandSeed := Key;
  for h := 0 to BMP.Height - 1 do
  begin
    P := BMP.ScanLine[h];
    for w := 0 to BytesPorScan - 1 do
      P^[w] := P^[w] xor Random(256);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
bmp: TBitmap;
begin
bmp:=TBitmap.Create;
bmp.LoadFromFile('G:\Шифрование\29334.bmp');
EncryptBMP(bmp,StrToInt(Edit1.Text));
bmp.SaveToFile('G:\Шифрование\29334.bmp');
bmp.Free;
ShowMessage('Ready!');
end;

end.


Медвежонок Пятачок   (2011-03-11 16:37:00) [17]

запиши все байты бмп задом наперед.
а потом [8]


sniknik   (2011-03-11 16:30:00) [18]

> а открывался только через программу, которая будет его расшифровывать
а копирование экрана программа тоже будет "шифровать"?


Anatoly Podgoretsky   (2011-03-11 16:23:00) [19]

> Smile  (11.03.2011 16:17:04)  [4]

EFS?


Anatoly Podgoretsky   (2011-03-11 16:22:00) [20]

> oren_yastreb  (11.03.2011 16:12:03)  [3]

Точно описание типичного архиватора.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо