Witam mam kod:
Function DecryptTextFromFile(FileName:String; Key:byte; IV:byte):string;
var
fStream:FileStream;
RijndaelAlg:Rijndael;
cStream:CryptoStream;
sReader:StreamReader;
//instance:SymmetricAlgorithm;
val:string;
begin
fStream:=System.IO.File.Open(FileName, FileMode.OpenOrCreate);
//instance.GenerateKey;
RijndaelAlg:=Rijndael.Create;
cStream:=CryptoStream.Create(fStream,RijndaelAlg.CreateDecryptor(Key, IV),CryptoStreamMode.Read);
sReader:=StreamReader.Create(cStream);
val := sReader.ReadLine;
showmessage(val);
end;
procedure TForm1.EncryptTextToFile(Data:String; FileName:String; Key:byte; IV:byte);
var
fStream:FileStream;
RijndaelAlg: Rijndael;
cStream:CryptoStream;
sWriter:StreamWriter;
begin
fStream:=System.IO.File.Open(FileName, FileMode.OpenOrCreate);
RijndaelAlg:=Rijndael.Create;
cStream:=CryptoStream.Create(fStream,RijndaelAlg.CreateEncryptor(Key, IV),CryptoStreamMode.Write);
sWriter:=StreamWriter.Create(cStream);
sWriter.WriteLine(Data);
sWriter.Close();
cStream.Close();
fStream.Close();
end;
procedure TForm1.Button1Click(Sender: TObject);
var
RijndaelAlg: Rijndael;
sData :string;
FileName:string;
begin
RijndaelAlg:=Rijndael.Create;
FileName:='CText.txt';
sData:='Here is some data to encrypt.';
Memo1.Text:=EncryptTextToFile(sData, FileName, RijndaelAlg.Key, RijndaelAlg.IV);
Memo2.Text:=DecryptTextFromFile(FileName, RijndaelAlg.Key, RijndaelAlg.IV);
end;
Jednak podczas kompilacji wywala:
[Pascal Error] Unit1.pas(43): E1020 Constructing instance of 'Rijndael' containing abstract method 'SymmetricAlgorithm.GenerateKey'
[Pascal Error] Unit1.pas(43): E1020 Constructing instance of 'Rijndael' containing abstract method 'SymmetricAlgorithm.GenerateIV'
[Pascal Error] Unit1.pas(44): E2250 There is no overloaded version of 'CreateDecryptor' that can be called with these arguments
[Pascal Error] Unit1.pas(57): E1020 Constructing instance of 'Rijndael' containing abstract method 'SymmetricAlgorithm.GenerateKey'
[Pascal Error] Unit1.pas(57): E1020 Constructing instance of 'Rijndael' containing abstract method 'SymmetricAlgorithm.GenerateIV'
[Pascal Error] Unit1.pas(58): E2250 There is no overloaded version of 'CreateEncryptor' that can be called with these arguments
[Pascal Error] Unit1.pas(71): E1020 Constructing instance of 'Rijndael' containing abstract method 'SymmetricAlgorithm.GenerateKey'
[Pascal Error] Unit1.pas(71): E1020 Constructing instance of 'Rijndael' containing abstract method 'SymmetricAlgorithm.GenerateIV'
[Pascal Error] Unit1.pas(74): E2010 Incompatible types: 'Byte' and 'dynamic array'
[Pascal Error] Unit1.pas(74): E2010 Incompatible types: 'Byte' and 'dynamic array'
[Pascal Error] Unit1.pas(75): E2010 Incompatible types: 'Byte' and 'dynamic array'
[Pascal Error] Unit1.pas(75): E2010 Incompatible types: 'Byte' and 'dynamic array'
[Pascal Error] Unit1.pas(22): E2065 Unsatisfied forward or external declaration: 'TForm1.DecryptTextFromFile'
[Pascal Fatal Error] Project1.dpr(17): F2063 Could not compile used unit 'Unit1.pas'
Wie ktoś jak zakodować i rozkodować tekst??