Berechnet den polynomischen CRC32-Wert eines Strings

# crc32

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

crc32 — Berechnet den polynomischen CRC32-Wert eines Strings

### Beschreibung

function crc32(string `$string`): int

Berechnet die zyklisch redundante polynomische Prüfsumme mit einer Länge von 32 Bit für `string`. Dies wird gewöhnlich für die Integritätsprüfung übermittelter Daten verwendet.

Warnung

Da der Datentyp Integer von PHP vorzeichenbehaftet ("signed") ist, resultieren viele Prüfsummen auf 32bit Plattformen in negativen Integer-Werten. In 64bit Installationen sind jedoch alle crc32()-Ergebnisse positive Ganzzahlen.

Daher ist die "%u" Typangabe von sprintf() oder printf() nötig, um die Stringrepräsentation der vorzeichenlosen crc32()-Prüfsumme im Dezimalformat zu erhalten.

Für die hexadezimale Repräsentation der Prüfsumme kann entweder die "%x" Typangabe von sprintf() oder printf() oder die dechex()-Umwandlungsfunktion verwendet werden; beide sorgen für die Konvertierung des crc32()-Ergebnisses in eine vorzeichenlose Ganzzahl.

Es wurde in Erwägung gezogen, auch in 64bit-Installationen negative Ganzzahlen für höhere Ergebniswerte zurückzugeben, aber das hätte die Hexadezimalumwandlung ruiniert, da dann negative Ganzzahlen ein zusätzliches 0xFFFFFFFF########-Offset erhielten. Da die hexadezimale Repräsentation der meist verbreitete Anwendungsfall scheint, wurde entschieden das nicht zu tun, auch wenn es direkte dezimale Vergleiche in etwa 50% der Fälle ruiniert, wenn von 32bit auf 64bit gewechselt wird.

Die Funktion eine Ganzzahl zurückgeben zu lassen, war im Nachhinein gesehen möglicherweise nicht die beste Idee, und gleich einen Hex-String zurückzugeben (wie z. B. md5()) könnte gleich zu Anfang ein besserer Plan gewesen sein.

Für eine portablere Lösung ist das generische hash() in Erwägung zu ziehen. `hash("crc32b", $str)` liefert die gleiche Zeichenkette wie `str_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT)`.

### Parameter-Liste

`string`

  Die Daten.

### Rückgabewerte

Gibt die CRC32-Prüfsumme von `string` als Integer zurück.

### Beispiele

Beispiel #1 Anzeigen einer CRC32-Prüfsumme

Das folgende Beispiel zeigt, wie eine konvertierte Prüfsumme mittels der Funktion printf() ausgegeben wird:

    <?php
    $pruefsumme = crc32("Der schnelle braune Fuchs sprang über den trägen Hund.");
    printf("%u\n", $pruefsumme);
    ?>

### Siehe auch

- hash() - Berechnet den Hash einer Nachricht
- md5() - Errechnet den MD5-Hash eines Strings
- sha1() - Berechnet den SHA1-Hash eines Strings

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open