Page 1 of 2 1 2 LastLast
Results 1 to 15 of 17

Thread: Codeer functie

  1. #1

    Codeer functie

    Code:
    function encode(text: string): string;
    var
      x: integer;
      ch: char;
      a,b: integer;
      tmp: string;
    begin
      a:= 0;
      b:= 0;
      tmp:= '';
      ch:= #0;
    
      for x:= 1 to length(text) do
      begin
       ch:= text[x];
       a:= ord(ch);
       b:= a * 2;
       ch:= chr(b);
       tmp:= tmp + ch;
      end;
      
      encode:= tmp;
    end;
    Dit is een simpele codeer functie, als je een decodeer functie maakt die precies het tegenover gestelde doet van wat hier staat, dan kun je dus heel gemakkelijk bestanden coderen/decoderen
    Success !
    WM.
    What about weapons of mass construction?

  2. #2
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    ziet er wel mooi uit, maar heb je er wel zo veel aan? iedereen kan toch zo een encodeer en decodeer functie maken, de formule die jij gebruikt is:

    ord(Ch) * 2

    niet echt moeilijk dus, niet dat ik je af wil kraken hoor, maar een beetje slim persoon heeft dit zo door. Zo heb ik ook een codeer/decodeer functie geschreven, deze was afhankelijk van de tekst die voorafging, bv:

    formule: ord(Ch) Xor Sleutel + Last.

    Hierbij is Sleutel het "wachtwoord". en Last de uitkomst van de vorige uitkomst.

    dus de tekst: ABC word 65 66 67 en als je dan een encryptie er op los laat, waarbij het paswoord ( moet een getal zijn ) 15 is:

    Ch = Chr(65 Xor 15 + 0) { 65 Xor 15 = 78; 78 + 0 = 78 }
    Last = ord(Ch) { Last = 78 }

    Ch = Chr(66 Xor 15 + 78) { 66 Xor 15 = 77; 77 + 78 = 155 }
    Last = ord(Ch) { Last = 155 }

    Ch = Chr(67 Xor 15 + 155) { 67 Xor 15 = 76; 76 + 155 = 231 }
    Last = ord(Ch) { Last = 78 }

    je krijgt nu:
    78 155 231

    terwijl ABC bij jouw gecodeerd wordt als:

    Ch = Chr(65 * 2); { 65 * 2 = 130 }
    Ch = Chr(66 * 2); { 66 * 2 = 132 }
    Ch = Chr(67 * 2); { 67 * 2 = 134 }

    je krijgt dus:
    130 132 134

    Als je nu weet dat het gecodeerde woord ABC kun je bij de jouwe VEEL makkelijker achterhalen wat de encryptie methode is. Terwijl bij mij de "Cracker" veel meer moeite heeft ( ook niet veel).

    Verder toch leuk dat je je techniek met ons wilt delen.
    Last edited by SvG; 09-Dec-04 at 16:33.
    !

  3. #3
    Hehe, kijk eens aan.... ik zal deze broncode verder gaan gebruiken.
    Hier had ik al enigszins op gehoopt. Nog meer mensen die nog een goeie
    codeer methode hebben ?


    OOh ja... je kunt natuurlijk ook dit doen:

    for x:= 1 to length(password) do
    begin
    a:= ord(password[x]);

    b:= b + a;
    end;

    Als je wachtwoord dus ABC is dan krijg je als je deze letters geconverteerd optelt het wachtwoord numeriek
    WM.
    What about weapons of mass construction?

  4. #4
    Bite me! Tommy's Avatar
    Join Date
    Jan 2002
    Location
    Rdam
    Posts
    564
    Tja zo kan je lang doorgaan, berekening met cosinussen of tangens of sinussen er door , eventueel vermenigvuldig je die ook weer met elkaar. heheh, tja

  5. #5
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    natuurlijk moet je een "echt " wachtwoord hebben, en daaruit een getal maken, wat je ook kunt doen is:

    origineel: ABC

    paswoord: SVG

    ABC
    SVG
    ---- +

    65 66 67
    83 86 71

    --------------- +

    148 152 138


    Zo krijg je dus ook een leuke encryptie. Die niet alleen van het hele paswoord uitgaat, maar ook nog een van de lengte van het paswoord.

    Verder is het zo dat Sinus en Cosinus niet echt handig zijn, want dit geeft voornamelijk een Double terug, en je moet op een heel getal uitkomen, en afronden is bij encryptie niet toegestaan.
    !

  6. #6
    Cosinus en Sinus berekeningen kunnen wel, maar tangens levert bij 0,5 * pi een oneindig getal. En deze kan natuurlijk voorkomen. probeer maar eens Tanges van 90 graden, of van 270 graden. dit gaat je niet lukken.

    Vermenigvuldigen kan wel in combinatie met Xor functies.
    WM.
    What about weapons of mass construction?

  7. #7
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    Wat bedoel je met
    Vermenigvuldigen kan wel in combinatie met Xor functies
    ?

    is vermenigvuldigen zonder Xor dan niet mogenlijk?
    !

  8. #8
    het kan ook zonder Xor, maar het is natuurlijk mooier en beter met Xor
    WM.
    What about weapons of mass construction?

  9. #9
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    Hoe langer hoe moeilijker

    ik d8 alleen dat je bedoelde dat je alleen kon vermenigvuldigen met Xor. Ik d8 al

    ook leuk is, zijn kwadraten, BV:

    ABC

    A^B
    B^C
    C^PASWOORD

    decrypten per 3 characters. telkens 3 nemen, laatste eruithalen en meermachtswortel C van PASWOORD nemen, C dus. B is dan Meermachtswortel B van C nemen, en natuurlijk A is meermachtswortel A van B.

    klaar is stijn, maarja, zo kun je van alles bedenken
    !

  10. #10
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    en nog iets,

    misschien zou je bv 50bytes kunnen toevoegen waardoor je heel makkelijk kunt zien of het paswoord juist is. probleem is dat de "hacker" er nu ook makkelijker door komt, wat dan wel het voordeel is is, dat je je bestandje van 250MB niet eerst laat decrypten en er dan achter komt dat het paswoord fout is
    !

  11. #11
    Originally posted by SvG
    Zo heb ik ook een codeer/decodeer functie geschreven, deze was afhankelijk van de tekst die voorafging, bv:

    formule: ord(Ch) Xor Sleutel + Last.

    Hierbij is Sleutel het "wachtwoord". en Last de uitkomst van de vorige uitkomst.

    dus de tekst: ABC word 65 66 67 en als je dan een encryptie er op los laat, waarbij het paswoord ( moet een getal zijn ) 15 is:

    Ch = Chr(65 Xor 15 + 0) { 65 Xor 15 = 78; 78 + 0 = 78 }
    Last = ord(Ch) { Last = 78 }

    Ch = Chr(66 Xor 15 + 78) { 66 Xor 15 = 77; 77 + 78 = 155 }
    Last = ord(Ch) { Last = 155 }

    Ch = Chr(65 Xor 15 + 155) { 67 Xor 15 = 76; 76 + 155 = 231 }
    Last = ord(Ch) { Last = 78 }

    je krijgt nu:
    78 155 231
    Hoi,
    Mis ik hier iets, of kun je niet verder gaan dan ABC ?
    Als je bijv. ABCD wil encrypten dan komt de 'Last' toch over de 254 heen ?

  12. #12
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    Hmmm.. Je hebt gelijk.

    Die functie zal toch minder goed werken dan ik toendertijd dacht

    Ik raad je toch aan een serieus algorithme te zoeken
    !

  13. #13
    Ik d8t al dat ik iets over het hoofd zag.
    Het enige wat me als toevoeging nu even te binnen schiet is om voor het 'password' de lengte van de ingevoerde string te nemen. Dus dat je voor iedere 'regel' een andere sleutel hebt.

  14. #14
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Er zijn prachtige rijndael units, open source en alles, er is amper een reden zelf wat te prutsen.

  15. #15
    Member
    Join Date
    May 2002
    Location
    Groningen
    Posts
    93

Page 1 of 2 1 2 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Callback functie in thread (TimeSetEvent)
    By marz in forum Algemeen
    Replies: 8
    Last Post: 26-Jul-04, 16:36
  2. zelfde functie aanroep in elke functie
    By sindy1982 in forum Algemeen
    Replies: 3
    Last Post: 08-Apr-04, 18:44
  3. Replies: 2
    Last Post: 09-Oct-03, 11:03
  4. Functie in Threads
    By rachid in forum Algemeen
    Replies: 13
    Last Post: 01-Oct-03, 11:20

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •