В настоящее время я использую алгоритм RC4 для хранения настроек приложения, и когда я наблюдаю вывод, он выглядит легко декодируемым.Вывод строк, начинающихся с одинаковых букв, выглядит одинаково.
Короткие строки приводят к короткому выводу, а более длинные строки дают более длинный вывод.
Однако я ищу что-то, что будет производитьболее длинный вывод для коротких строк.
Есть ли другой алгоритм, который создаст более «скремблированный» вывод даже с короткими строками?
Я также хочу добавить суффикс или префикс к некоторым данным, которые я могулегко распознать и удалить после декодирования, чтобы создать больше случайности на выходе.
Я создал новый код, используя Rijndael, показанный ниже, но он все еще страдает от того же отсутствия изменений в выходных данных.Я подозреваю, что есть некоторые дополнительные параметры, необходимые для создания большего изменения в выходных данных, IV, дополнении блоков и тому подобном.
unit testform;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, DCPrijndael, DCPsha1;
type
{ TForm1 }
TForm1 = class(TForm)
edtKeyString: TEdit;
edtInputText: TEdit;
edtEncryptedText: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure edtInputTextChange(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.edtInputTextChange(Sender: TObject);
var
Cipher: TDCP_rijndael;
begin
Cipher:= TDCP_rijndael.Create(Self);
Cipher.InitStr(edtKeyString.Text,TDCP_sha1);
edtEncryptedText.Text := Cipher.EncryptString(edtInputText.Text);
Cipher.Burn;
Cipher.Free;
end;
initialization
{$I testform.lrs}
end.