Einzelnen Beitrag anzeigen

Spytrycer

Registriert seit: 11. Dez 2012
4 Beiträge
 
Delphi 6 Personal
 
#6

AW: SIMPEL Verschlüsselungs-Array-Problem mit Matritzen

  Alt 16. Dez 2012, 11:22
@ 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;
David

Geändert von Spytrycer (16. Dez 2012 um 13:32 Uhr)
  Mit Zitat antworten Zitat