Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 14.08.2017
Сообщений: 2
1

Расшифровать и зашифровать файл с помощью алгоритма (IDEA) с паролем

14.08.2017, 00:39. Показов 1157. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
нигде не могу найти инфы как пользоваться DEC v5.2 (https://github.com/winkelsdorf... m/releases)
в общем нужно расшифровать и зашифровать файл с помощью алгоритма (IDEA) с паролем
как это реализоваться ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.08.2017, 00:39
Ответы с готовыми решениями:

Зашифровать и в проге расшифровать файл
Есть программа на делфи 'Тест' она из текстового файла читает вопросы и ответы нужно сделать так...

Зашифровать и расшифровать сообщение
Помогите пожалуйста решить задачу! У нас есть сообщение, оно состоит из больших латинских букв и...

Напишите подпрограммы Encode (зашифровать) и Decode (расшифровать)
(в формах)Напишите подпрограммы Encode (зашифровать) и Decode (расшифровать), которые получают два...

Зашифровать и расшифровать свою фамилию с помощью алгоритма RSA
Добрый день, уважаемые форумчане! Имею задание: зашифровать и расшифровать свою фамилию с...

4
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
14.08.2017, 07:22 2
Цитата Сообщение от AndrewSm1th Посмотреть сообщение
как это реализоваться ?
1 учебник по русскому
2 там же пример есть
0
0 / 0 / 0
Регистрация: 14.08.2017
Сообщений: 2
14.08.2017, 22:02  [ТС] 3
благодарю за помощь, но это не совсем то что требуется.
-------
нужно именно зашифровка файла, и именно через алгоритмы DEC 5.2
-------
что нужно поменять в примере для достижения этой цели.
-------

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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
uses
  DECUtil, DECCipher, DECHash, DECFmt;
  
...
 
var
  ACipherClass: TDECCipherClass = TCipher_Rijndael;
  ACipherMode: TCipherMode = cmCBCx;
  AHashClass: TDECHashClass = THash_Whirlpool;
  ATextFormat: TDECFormatClass = TFormat_Mime64;
  AKDFIndex: LongWord = 1;
 
function Encrypt(const AText: String; const APassword: String): String; overload;
var
  ASalt: Binary;
  AData: Binary;
  APass: Binary;
begin
  with ValidCipher(ACipherClass).Create, Context do
  try
    ASalt := RandomBinary(16);
    APass := ValidHash(AHashClass).KDFx(APassword[1], Length(APassword) * SizeOf(APassword[1]), ASalt[1], Length(ASalt), KeySize, TFormat_Copy, AKDFIndex);
    Mode := ACipherMode;
    Init(APass);
    SetLength(AData, Length(AText) * SizeOf(AText[1]));
    Encode(AText[1], AData[1], Length(AData));
    Result := ValidFormat(ATextFormat).Encode(ASalt + AData + CalcMAC);
  finally
    Free;
    ProtectBinary(ASalt);
    ProtectBinary(AData);
    ProtectBinary(APass);
  end;
end;
 
function Encrypt(const AText: WideString; const APassword: WideString): WideString; overload;
var
  ASalt: Binary;
  AData: Binary;
  APass: Binary;
begin
  with ValidCipher(ACipherClass).Create, Context do
  try
    ASalt := RandomBinary(16);
    APass := ValidHash(AHashClass).KDFx(APassword[1], Length(APassword) * SizeOf(APassword[1]), ASalt[1], Length(ASalt), KeySize, TFormat_Copy, AKDFIndex);
    Mode := ACipherMode;
    Init(APass);
    SetLength(AData, Length(AText) * SizeOf(AText[1]));
    Encode(AText[1], AData[1], Length(AData));
    Result := ValidFormat(ATextFormat).Encode(ASalt + AData + CalcMAC);
  finally
    Free;
    ProtectBinary(ASalt);
    ProtectBinary(AData);
    ProtectBinary(APass);
  end;
end;
 
function Decrypt(const AText: String; const APassword: String): String; overload;
var
  ASalt: Binary;
  AData: Binary;
  ACheck: Binary;
  APass: Binary;
  ALen: Integer;
begin
  with ValidCipher(ACipherClass).Create, Context do
  try
    ASalt := ValidFormat(ATextFormat).Decode(AText);
    ALen := Length(ASalt) - 16 - BufferSize;
    AData := System.Copy(ASalt, 17, ALen);
    ACheck := System.Copy(ASalt, ALen + 17, BufferSize);
    SetLength(ASalt, 16);
    APass := ValidHash(AHashClass).KDFx(APassword[1], Length(APassword) * SizeOf(APassword[1]), ASalt[1], Length(ASalt), KeySize, TFormat_Copy, AKDFIndex);
    Mode := ACipherMode;
    Init(APass);
    SetLength(Result, ALen div SizeOf(AText[1]));
    Decode(AData[1], Result[1], ALen);
    if ACheck <> CalcMAC then
      raise Exception.Create('Invalid data');
  finally
    Free;
    ProtectBinary(ASalt);
    ProtectBinary(AData);
    ProtectBinary(ACheck);
    ProtectBinary(APass);
  end;
end;
 
function Decrypt(const AText: WideString; const APassword: WideString): WideString; overload;
var
  ASalt: Binary;
  AData: Binary;
  ACheck: Binary;
  APass: Binary;
  ALen: Integer;
begin
  with ValidCipher(ACipherClass).Create, Context do
  try
    ASalt := ValidFormat(ATextFormat).Decode(AText);
    ALen := Length(ASalt) - 16 - BufferSize;
    AData := System.Copy(ASalt, 17, ALen);
    ACheck := System.Copy(ASalt, ALen + 17, BufferSize);
    SetLength(ASalt, 16);
    APass := ValidHash(AHashClass).KDFx(APassword[1], Length(APassword) * SizeOf(APassword[1]), ASalt[1], Length(ASalt), KeySize, TFormat_Copy, AKDFIndex);
    Mode := ACipherMode;
    Init(APass);
    SetLength(Result, ALen div SizeOf(AText[1]));
    Decode(AData[1], Result[1], ALen);
    if ACheck <> CalcMAC then
      raise Exception.Create('Invalid data');
  finally
    Free;
    ProtectBinary(ASalt);
    ProtectBinary(AData);
    ProtectBinary(ACheck);
    ProtectBinary(APass);
  end;
end;
 
...
 
procedure TForm1.Button1Click(Sender: TObject);
var
  s, k: WideString;
begin
  s := 'The quick brown fox jumps over the lazy dog';
  k := 'password';
  Memo1.Lines.Clear;
  Memo1.Lines.Add(
    'Encode Test: ' + Encrypt(s, k) + sLineBreak +
    'Decode Test: ' + Decrypt(Encrypt(s, k), k)
  );
end;
-----
Зарание благодарю .
-----
прошу прощение за мою некомпетентность, я в данном вопросе новичок.

Добавлено через 4 минуты
благодарю за совет

будьте добры посмотреть мое последнее сообщение в теме
0
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
15.08.2017, 01:37 4
Во-первых. Какие у вас проблемы с вашим кодом из поста #3?
Во-вторых. Какая у вас версия Дельфи?
0
qwertehok
15.08.2017, 07:00     Расшифровать и зашифровать файл с помощью алгоритма (IDEA) с паролем
  #5

Не по теме:

Цитата Сообщение от AndrewSm1th Посмотреть сообщение
что нужно поменять в примере для достижения этой цели.
программиста? ))))

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2017, 07:00

Зашифровать-расшифровать текст с помощью шифра Цезаря
Задание такое - текст из файла Прізвище1.txt зашифровать в Прізвище2.txt, а потом дешифровать из...

Зашифровать и расшифровать заданный текст с помощью перестановки
Задается натуральное число k и перестановка чисел 1, ... , k с помощью последовательности...

Зашифровать и расшифровать текст с помощью квадрата Вижинера
Здравствуйте, нужно зашифровать и расшифровать текст с помощью квадрата Вижинера Вот что я начал,...

Зашифровать текст с помощью алгоритма RSA
Здравствуйте! Решаю задачу по условию которой надо раздельно по абзацам зашифровать текст в Word...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru