Position actuelle: Accueil> Derniers articles> Combiné avec str_split pour implémenter la vérification CRC des chaînes

Combiné avec str_split pour implémenter la vérification CRC des chaînes

M66 2025-05-28

Lors du traitement de la vérification des données, le CRC (vérification de redondance cyclique) est une méthode de vérification courante. La vérification du CRC est généralement utilisée pour vérifier que les données ont changé pendant la transmission. Dans cet article, nous discuterons de la façon d'utiliser la fonction STR_SPLIT de PHP en conjonction avec un algorithme de vérification CRC simple pour atteindre cette fonction.

Qu'est-ce que la vérification CRC?

La vérification CRC est un algorithme utilisé pour vérifier l'intégrité des données. Il génère un "code de contrôle" (généralement un nombre) en effectuant des opérations mathématiques spécifiques sur les données. Le récepteur peut utiliser le même algorithme pour recalculer le code de vérification. Si la valeur calculée est cohérente avec le code de vérification transmis, cela signifie qu'il n'y a pas d'erreur dans les données.

Dans les applications pratiques, la vérification CRC est généralement utilisée dans le transfert de fichiers, le protocole réseau et d'autres scénarios pour assurer l'intégrité de la transmission des données.

Combiné avec la fonction STR_SPLIT de PHP pour implémenter la vérification CRC

La fonction STR_SPLIT dans PHP peut diviser une chaîne en plusieurs sous-chaînes. Lorsque vous effectuez des vérifications CRC, nous pouvons l'utiliser pour diviser la chaîne d'entrée en pièces plus petites pour le calcul. Voici une simple implémentation.

1. Définissez la fonction de contrôle CRC

Nous pouvons définir une fonction CRC simple, en utilisant les opérations de bit et la fonction STR_SPLIT pour implémenter la vérification des données.

 <?php
function crc_check($data) {
    $crc = 0xFFFF; // initialisation CRC valeur
    $dataArray = str_split($data); // Divisez la chaîne de données en un tableau de caractères
    
    foreach ($dataArray as $char) {
        $byte = ord($char); // Obtenir des personnages ASCII valeur
        $crc ^= $byte; // Volonté CRC Exclusif ou opération avec l&#39;octet actuel

        // droite CRC valeurconduire位移处理
        for ($i = 0; $i < 8; $i++) {
            if ($crc & 0x0001) {
                $crc >>= 1;
                $crc ^= 0xA001; // Si la position la plus basse est1,conduire XOR fonctionner
            } else {
                $crc >>= 1;
            }
        }
    }

    return strtoupper(dechex($crc)); // Retour à l&#39;hexadécimal CRC valeur
}

// Échantillons de données
$data = "Hello, world!";
// Appel CRC Fonction de vérification
$crcResult = crc_check($data);
echo "CRC Résultats de la vérification: " . $crcResult;
?>

2. Explication du code

  • str_split ($ data) : divisez les données de données d'entrée $ data en un tableau unique.

  • ord ($ char) : renvoie la valeur ASCII du caractère.

  • Pièce de fonctionnement du bit: La partie centrale de l'algorithme CRC est implémentée par le biais de l'opération XOR et du calcul de déplacement. Ce processus traite chaque octet et génère la valeur de vérification CRC finale via une série d'opérations XOR et de déplacement.

  • DECHEX ($ CRC) : convertit la valeur de vérification CRC finale en une représentation hexadécimale.

Grâce aux étapes ci-dessus, nous pouvons obtenir le code de vérification CRC de la chaîne d'entrée.

3. Démonstration du cas d'utilisation

Si nous effectuons une vérification CRC sur la chaîne "Hello, World!", Le code renverra un code de vérification CRC. Supposons que la valeur de retour est E8B7BE43 .

 $crcResult = crc_check("Hello, world!");
echo "CRC Résultats de la vérification: " . $crcResult;

résumé

En combinant la fonction STR_SPLIT de PHP avec l'algorithme de vérification CRC, nous pouvons simplement implémenter la vérification d'intégrité des chaînes. La fonction STR_SPLIT nous aide à décomposer les chaînes en caractères uniques, ce qui nous permet d'effectuer l'octet d'octet CRC des calculs.

J'espère que cet article peut vous aider à mieux comprendre comment implémenter la vérification du CRC à l'aide de PHP. Si vous avez plus de questions, n'hésitez pas à demander!