@ Sir Rufo
Danke, das programm soll so in etwa das leisten. Also die
Ascii werte eines Zeichens mit einer Verschlüsselungsmatrix Verschlüsseln etwa so:
MatrixK1 MatrixK2 Nachricht(Asciiwerte) div2 Versch werte
* =
MatrixK3 MatrixK4 Nachricht(Asciiwerte) div2 Versch werte
KLARTEXT:
wenn mann KK eingibt und als MatrixK werte 1,2,3,4 sieht das 1 Dimensional so aus
1 * 75(K) + 2 * 75(K) = Versch1
3 * 75(K2) + 4 * 75(K2) = versch2
VerschString := IntToStr (Versch1)+(Versch2) // das ganze nur halt wenn versch ein array ist, und so mit nur einem versch
// und als for-Variabel
for i := Length(EdEingabe.text) do
Verschwert := (Verschwert) + (Versch[i]);
;
Klar?
habs jetzt geschafft zum glück auch noch anders zu lösen, hier die lösung:
Delphi-Quellcode:
procedure TForm1.BtVerschClick(Sender: TObject);
const Max = 10;
var i: Integer;
f: Integer;
ff: Integer;
gg: Integer;
h: Integer;
Asc: Array[1..Max] of Integer;
Zw : array[1..Max] of String;
MatrixV : array[1..Max] of Integer;
g : integer;
MatrixK1, MatrixK2, MatrixK3, MatrixK4: Integer;
MatrixN: Integer;
Ausgabe: String;
begin
try
Ausgabe := '';
MatrixK1 := StrToInt (EdMatrixK1.text);
if MatrixK1 = 0 then
showmessage ('MatrixK1 darf nicht 0 sein!');
MatrixK2 := StrToInt (EdMatrixK2.text);
if MatrixK2 = 0 then
showmessage ('MatrixK2 darf nicht 0 sein!');
MatrixK3 := StrToInt (EdMatrixK3.text);
if MatrixK3 = 0 then
showmessage ('MatrixK3 darf nicht 0 sein!');
MatrixK4 := StrToInt (EdMatrixK4.Text);
if MatrixK4 = 0 then
showmessage ('MatrixK4 darf nicht 0 sein!');
for i := 1 to Length(EdEingabe.Text) do
Asc[i] := ord(EdEingabe.text[i]);
;
for f := 1 to Length(EdEingabe.Text) div 2 do
MatrixV[f] := (MatrixK1 * Asc[f]) + (MatrixK2 * Asc[f]);
;
for g := 1 to length(EdEingabe.text) div 2 do
Zw[g] := IntToStr(MatrixV[g]);
;
for ff := Length(EdEingabe.text) div 2 to Length(EdEingabe.Text) do
MatrixV[ff] := (MatrixK4 * Asc[ff]) + (MatrixK4 * Asc[ff]);
;
for gg := Length(EdEingabe.text) div 2 to Length(EdEingabe.Text) do
Zw[gg] := IntToStr(MatrixV[gg])
;
for h := 1 to length(EdEingabe.text) do
Ausgabe := (Ausgabe) + (Zw[h]) + (' ');
;
if MatrixK1 = 0 then
EdVersch.Text := ''
else
if MatrixK2 = 0 then
EdVersch.Text := ''
else
if MatrixK3 = 0 then
EdVersch.Text := ''
else
if MatrixK4 = 0 then
EdVersch.Text := ''
else
EdVersch.Text := (Ausgabe);
except
showmessage ('Fehler bitte nur Buchstaben eingeben');
end;
end;
Jetzt habe ich nurnoch das Problem, das ich nun das was herauskommt z.B.
|17812 324 241242 212 |
Jetzt entschlüsseln will.
Dazu muss ich jetzt die Zahl bis einschließlich dem Leerzeichens in ein array zuweisen.
Aber wie ich das mache weiß ich nicht.
So viel hab ich schon:
Delphi-Quellcode:
procedure TForm1.BtEntClick(Sender: TObject);
const max = 10;
var Zw: Array[1..max] of String;
Zw2: Array[1..max] of String;
Asc2: Array[1..max] of Integer;
Asc: Array[1..max] of Integer;
i,g,h,ii: Integer;
Ausgabe: String;
begin
for i := 1 to length(EdVersch.Text) do
Zw[i] := (EdVErsch.Text[i]); //hier der String hier muss das so reingeschrieben werden.
;
EdEnt.text := (Zw[1]); //Probe
end;