GORAGOD.com

freelance, web developer, web designer, hosting, domain name

เทคนิคการตรวจสอบความผิดพลาดของข้อมูลด้วยวิธี Cyclic Redundancy Check (CRC) ในภาษา PHP

เทคนิคการตรวจสอบความผิดพลาดของข้อมูลด้วยวิธี Cyclic Redundancy Check (CRC) ในภาษา PHP
คำสั่ง PHP ที่ใช้การคำนวณ checksum หรือการตรวจสอบความผิดพลาดของข้อมูล ด้วยวิธี Cyclic Redundancy Check หรือ CRC แบบ 16 บิต
function hashString(string $data): string
{
    $crc = crc16($data);
    return dechex($crc);
}

function crc16(string $data): int
{
    $crc = 0xFFFF;
    for ($i = 0; $i < strlen($data); $i++) {
        $x = (($crc >> 8) ^ ord($data[$i])) & 0xFF;
        $x ^= $x >> 4;
        $crc = (($crc << 8) ^ ($x << 12) ^ ($x << 5) ^ $x) & 0xFFFF;
    }
    return $crc;
}

ฟังก์ชัน crc16() เป็นฟังก์ชั่นคำนวณและส่งคืน checksum ของข้อมูลที่รับเข้ามา โดยใช้วิธีคำนวณแบบ CRC-16 (Cyclic Redundancy Check) ซึ่งเป็นหนึ่งในวิธีคำนวณ checksum ที่ใช้กันอย่างแพร่หลาย

ส่วนฟังก์ชั่น hashString จะส่งคืนผลลัพท์ที่ได้จากฟังก์ชั่น crc16() คำนวณ checksum ของข้อมูลที่รับเข้ามาแล้วแปลงค่า checksum เป็นสตริงเลขฐานสิบหกด้วยฟังก์ชัน dechex() ก่อนส่งคืนผลลัพท์เป็นสตริงค์

วิธีใช้งาน
echo hashString('0123456ABC');
0SHAREFacebookLINE it!
^