Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.70/10: Рейтинг темы: голосов - 10, средняя оценка - 4.70
.: TAPAKAH :.
Мега Таракан
110 / 11 / 5
Регистрация: 24.05.2010
Сообщений: 227
1

Стеганография

08.04.2012, 17:51. Просмотров 1860. Ответов 1
Метки нет (Все метки)

Доброго времени суток! Прочитал эту тему, и решил побаловаться с этими программками но беда вот в чем: исходники не хотят компилироваться во Free Pascal 2.6.6 точнее не то, что не хотят, все компилируется, работать не хотят)
Это относится к 4 программке (остальные вроде нормально работают)
Т.е. компилирую, все норм, а если захочу выполнить, то пишет (причем это только для извлечения, прячет сообщение нормально)
Код
ВВЕДИТЕ ИМЯ ФАЙЛА СО СПРЯТАННЫМ СООБЩЕНИЕМ: OUT.TXT
Runtime error 106 at $00401536
  $00401536
  $00407571
PascalABS ругается на 30 строку, пишет
DeCrypt.pas(30) : Ошибка времени выполнения: Входная строка имела неверный формат.

Сокрытие
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
Program Crypt;
 
Var
  MESSAGE_FILE : TextFile;
  CONTAINER_FILE, RESULTANT_FILE : File Of Byte;
  FileName, Messg, TempString : String;
  i, j, Cell, cnt, ReadByte : Byte;
  index : Integer;
  Ch : Char;
Const
  Rus : Array[1..17] Of Char = ('А','а','В','Е','е','К','М','Н','О','о','Р','р','С','с','Т','х','Х');
  Eng : Array[1..17] Of Char = ('A','a','B','E','e','K','M','H','O','o','P','p','C','c','T','x','X');
  
Begin
 
  Messg := '';
  WriteLn('               --- ШИФРОВАНИЕ ---');
  Repeat
    Write('ВВЕДИТЕ ИМЯ ФАЙЛА-СООБЩЕНИЯ: ');
    ReadLn(FileName);
  Until
    FileName <> '';
  Assign(MESSAGE_FILE, FileName);
  Reset(MESSAGE_FILE);
  
  While Not Eof(MESSAGE_FILE) Do
  Begin
    Read(MESSAGE_FILE, Ch);
    Messg := Messg + Ch;
  End;
  
  Repeat
    Write('ВВЕДИТЕ ИМЯ ФАЙЛА-КОНТЕЙНЕРА: ');
    ReadLn(FileName);
  Until
    FileName <> '';
  Assign(CONTAINER_FILE, FileName);
  Reset(CONTAINER_FILE);
  
  Repeat
    Write('ВВЕДИТЕ ИМЯ РЕЗУЛЬТИРУЕЩЕГО-ФАЙЛА: ');
    ReadLn(FileName);
  Until
    FileName <> '';
  Assign(RESULTANT_FILE, FileName);
  ReWrite(RESULTANT_FILE);
  
  For cnt := 0 To Length(Messg) Do
  Begin
    cell := Ord(Messg[cnt]);
    For i := 1 To 8 Do
    Begin
      index := 0;
      Repeat
        If Eof(CONTAINER_FILE) Then Break;
          Read(CONTAINER_FILE, ReadByte);
        For j := 1 To 17 Do
          If ReadByte = Ord(Rus[j]) Then
            index := j;
          If index = 0 Then
            Write(RESULTANT_FILE, ReadByte);
      Until 
        index <> 0;
      
      If cell And 1 = 1 Then
        ReadByte := Ord(Eng[index]);
 
      Write(RESULTANT_FILE, ReadByte);
      cell := cell Shr 1;
    End;
  End;
 
  If Not Eof(CONTAINER_FILE) Then
    While Not Eof(CONTAINER_FILE) Do
    Begin
      If Eof(CONTAINER_FILE) Then Break;
      Read(CONTAINER_FILE, cell);
      Write(RESULTANT_FILE, cell);
    End;
  Close(CONTAINER_FILE);
  Close(RESULTANT_FILE);
  WriteLn('СООБЩЕНИЕ УСПЕШНО СПРЯТАНО.');
  WriteLn('----------------------------------------------------');
  Write('ДЛЯ ВЫХОДА ИЗ ПРОГРАММЫ НАЖМИТЕ ЛЮБУЮ КЛАВИШУ...');  
  ReadLn;
End.

Извлечение
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Program DeCrypt;
Var
  DECRYPT_FILE : TextFile;
  i, j, cell, ReadByte : Byte;
  FileName, MessageString : String;
  index : Integer;
Const
  Rus : Array[1..17] Of Char = ('А','а','В','Е','е','К','М','Н','О','о','Р','р','С','с','Т','х','Х');
  Eng : Array[1..17] Of Char = ('A','a','B','E','e','K','M','H','O','o','P','p','C','c','T','x','X');
Begin
  WriteLn('               --- ДЕШИФРОВАНИЕ ---');
  Write('ВВЕДИТЕ ИМЯ ФАЙЛА СО СПРЯТАННЫМ СООБЩЕНИЕМ: ');
  ReadLn(FileName);
  Assign(DECRYPT_FILE, FileName);
  Reset(DECRYPT_FILE);
  
  MessageString := '';
  
  While Not Eof(DECRYPT_FILE) Do
  Begin
    ReadByte := 0;
    For i := 1 To 8 Do
    Begin
      ReadByte := ReadByte Shr 1;
      index := 0;
 
      Repeat
        If Eof(DECRYPT_FILE) Then Break;
        
        Read(DECRYPT_FILE, cell);
 
        For j := 1 To 17 Do
          If (cell = Ord(Rus[j])) Or (cell = Ord(Eng[j])) Then
            index := j;
      Until 
        index <> 0;
 
      If cell = Ord(Eng[index]) Then
        ReadByte := ReadByte Or 128;
    End;
      MessageString := MessageString + Chr(ReadByte);
  End;
  Close(DECRYPT_FILE);
  WriteLn('ИЗВЛЕЧЕННОЕ СООБЩЕНИЕ: ');
  WriteLn(MessageString);  
  WriteLn('----------------------------------------------------');
  Write('ДЛЯ ВЫХОДА ИЗ ПРОГРАММЫ НАЖМИТЕ ЛЮБУЮ КЛАВИШУ...');  
  ReadLn;
End.

Вроде проблему описал Заранее мега спасибо
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2012, 17:51
Ответы с готовыми решениями:

Стеганография
Здравствуйте,подскажите пожалуйста! Я написал программу которая шифрует пробелами секретную...

LSB Стеганография
Здравствуйте, помогите, пожалуйста решить задачу. Решение я находила, но в среде Делфи, а мне нужна...

Стеганография
Есть текст и в нем надо скрыть некоторую фразу, состоящую из букв. Буквы этой фразы представляются...

Стеганография
Вот задание:Есть некий текст и в нем тоже надо спрятать другой текст. Аналогичным образом...

Стеганография
Помогите пожалуйста с задачкой на стеганографию.. Объясните мне пожалуйста код шифровки и...

1
.: TAPAKAH :.
Мега Таракан
110 / 11 / 5
Регистрация: 24.05.2010
Сообщений: 227
10.04.2012, 09:48  [ТС] 2
Вроде эту ошибку можно исправить написав какой то ключ в препроцессоре...
Кто знает какой это ключ?

Не по теме:

Вроде {$I+} или {$F} или ещё что...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2012, 09:48

Стеганография - скрывать, а затем извлекать любой файл внутри текстового файла
Нужно написать программу, которая позволяет скрывать, а затем извлекать любой файл внутри...

стеганография
в общем понадобилось скрыть текст в картинке средствами php. написал тривиальную прогу где нагло...

Стеганография
Всем доброго времени суток, дали задание зашифровать в изображении текст, т.к. времени у меня не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.