Toon posts:

[PHP] Bestanden en het bereken van de CRC ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoe doe je dat?... ik weet niet precies wat CRC inhoud maar het schijnt een controle block te zijn waarmee data geverfieerd kan worden...

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
http://php.nederland.net/manual/en/function.crc32.php

volgende keer misschien eerst op php.net zoeken? :)

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Op zondag 27 januari 2002 18:11 schreef marcusk het volgende:
http://php.nederland.net/manual/en/function.crc32.php

volgende keer misschien eerst op php.net zoeken? :)
Hoezo daar heb je GOT toch voor ;(

Programmer - an organism that turns coffee into software.


Verwijderd

Topicstarter
Op zondag 27 januari 2002 18:11 schreef marcusk het volgende:
http://php.nederland.net/manual/en/function.crc32.php

volgende keer misschien eerst op php.net zoeken? :)
dus simpel gezegt kan ik dus gewoon die crc functie gebruiken met de inhoud van het bestand en dan is de uitkomst het getal? of text?

Verwijderd

Topicstarter
Op zondag 27 januari 2002 18:14 schreef LuCarD het volgende:

[..]

Hoezo daar heb je GOT toch voor ;(
:+

  • vinnux
  • Registratie: Maart 2001
  • Niet online
Nou om het even uitteleggen :
UIT de crc komt een getal.
Je kunt dit zien als een "unieke" code die verrifieert of je alle data hebt.
BV
crc(381263812637861283612783612 ) = 233413
Mocht er nou iets uit de data vallen dan wordt je cr anders bv 34242

Zo en het getal kan zowel positief als negatief.
Ik gebruik dit principe om te kijken of bepaalde sites geupdate zijn of niet.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

in plaats van de crc32 kan je ook de md5 gebruiken, die is wat langer en (ik meen) daardoor ook wat beter/minder fout gevoelig.

Nadeel van md5 is dat ie niet bruikbaar is voor foutcorrectie, alleen voor foutdetectie. Crc32 is daar weer wel bruikbaar voor (of ben ik nu te ver die kennis kwijt geraakt? :) )

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

helaas ACM... crc-32 (maar dat geldt voor iedere CRC) is geen fout corrigerende code. De berekening is namelijk 1 dimensionaal, en voor een foutcorrigerende methode moet je minimaal 2 dimensionaal werken.
MD5 is zeer geschikt omdat het onmogelijk is om te reversen. crc is sneller, maar als je de crc hebt, kun je in combinatie met wat 'known text' en 'brute-force' de originele data redelijk eenvoudig reproduceren.

Voorbeeld:
Een string van 10 letters (case-insensitive:
10^26 mogelijkheden.
10^13 mogelijkheden als je de CRC kent.

met MD5 zul je alle mogelijkheden na moeten gaan.

disclaimer: Bovenstaande getallen zijn fictief, omdat ik de geavanceerde wiskundige kennis niet heb om het bovenstaande in detail te begrijpen

Localhost, sweet localhost


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22:39
Misschien overbodig maar ik doe het toch >:) ...
Het berekenen van een crc16 checksum:
Generating a CRC

Step 1 Load a 16-bit register with FFFF hex (all 1's). Call this the CRC register.

Step 2 Exclusive OR the first eight-bit byte of the message with the low order byte of the 16-bit CRC register, putting the result in the CRC register.

Step 3 Shift the CRC register one bit to the right (toward the LSB), zerofilling the MSB. Extract and examine the LSB.

Step 4 If the LSB is 0, repeat Step 3 (another shift). If the LSB is 1, Exclusive OR the CRC register with the polynomial value A001 hex (1010 0000 0000 0001).

Step 5 Repeat Steps 3 and 4 until eight shifts have been performed. When this is done, a complete eight-bit byte will have been processed.

Step 6 Repeat Steps 2 ... 5 for the next eight-bit byte of the message. Continue doing this until all bytes have been processed.

Result The final contents of the CRC register is the CRC value.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
Dus als ik het goed heb..

Ik doe dit weer uit het hoofd enzo..
PHP:
1
2
3
4
5
6
<?
$bytes = filesize("filenae.bla");
$fileX = fopen("filename.bla)","r");
$filbuf = fget($fileX, $bytes);
$checkkey = crc($filebuf);
?>

en om te checken die ik het zelfde maar lees dan een value uit de db en vergelijk ut daar mee?..

:)
Pagina: 1