Code mã hóa và giải mã base32 đơn giản trong PHP

Thảo luận trong 'Ngôn ngữ lập trình web PHP' bắt đầu bởi admin, 28/5/18.

  1. admin

    admin Phạm Công Sơn Thành viên BQT

    Tham gia ngày:
    22/5/13
    Bài viết:
    4,238
    Đã được thích:
    936
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Để mã hóa dữ liệu dạng base32_encode, base32_decode bạn dùng code dưới để mã hóa và giải mã dữ liệu PHP cấp thấp.

    Cách 1:

    Để mã hóa bạn dùng code sau:
    Mã:
    function base32_encode($d)
    {
    list($t, $b, $r) = array("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567", "", "");
    foreach(str_split($d) as $c)
      $b = $b . sprintf("%08b", ord($c));
    foreach(str_split($b, 5) as $c)
      $r = $r . $t[bindec($c)];
    return($r);
    }
    
    Để giải mã bạn dùng code sau:
    Mã:
    function base32_decode($d)
    {
    list($t, $b, $r) = array("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567", "", "");
    foreach(str_split($d) as $c)
        $b = $b . sprintf("%05b", strpos($t, $c));
    foreach(str_split($b, 8) as $c)
        $r = $r . chr(bindec($c));
    return($r);
    }
    
    Cách 2:

    Để mã hóa bạn dùng code sau:
    Mã:
    function webigin2_base32_encode($str) {
        $BASE32_TABLE = '0123456789bcdfghjklmnpqrstuvwxyz';
        $out = '';
        $i = $v = $bits = 0;
        $str_len = strlen($str);
        while ($i < $str_len) {
            $v |= ord($str[$i++]) << $bits;
            $bits += 8;
            while ($bits >= 5) {
                $out .= $BASE32_TABLE[$v & 31];
                $bits -= 5;
                $v >>= 5;
            }
        }
        if ($bits > 0) {
            $out .= $BASE32_TABLE[$v & 31];  
        }
        return $out;
    }
    
    Để giải mã bạn dùng code sau:
    Mã:
    function webigin2_base32_decode($str, $extrabits = 0) {
        $BASE32_TABLE = '0123456789bcdfghjklmnpqrstuvwxyz';
        $str_len = strlen($str);
        $out = '';
        $i = $v = $vbits = 0;
        while ($i < $str_len) {
            if (($x = strpos($BASE32_TABLE, $str[$i++])) == FALSE) {
                return FALSE;
            }
            $v |= $x << $vbits;
            $vbits += 5;
            if ($vbits >= 8) {
                $out .= chr($v);
                $v >>= 8;
                $vbits -= 8;
            }
        }
        $vbits += $extrabits;
        while ($vbits >= 8) {
            $out .= chr($v);
            $v >>= 8;
            $vbits -= 8;
        }
        return $out;
    }
     
    Cảm ơn đã xem bài:

    Code mã hóa và giải mã base32 đơn giản trong PHP

    danh sách diễn đàn rao vặt gov chất lượng
    Chỉnh sửa cuối: 28/5/18
  2. admin

    admin Phạm Công Sơn Thành viên BQT

    Tham gia ngày:
    22/5/13
    Bài viết:
    4,238
    Đã được thích:
    936
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Các bạn nên sử dụng cách 2 nhé, vì mình check qua, cách 2 ổn định hơn cách 1 khi mã hóa và giải mã.
     


Chủ để tương tự : Code hóa
Diễn đàn Tiêu đề Date
Rao Vặt Toàn Quốc Địa chỉ chuyên bẻ khóa mạng iPhone 6S 6S Plus bằng code quốc tế 26/7/18
Rao Vặt Toàn Quốc Bộ mã hóa Heidenhain - Đại lý Encoder Heidenhain CHAU THIEN CHI CO,.,LTD 2/3/18
Rao Vặt Toàn Quốc Encoder bộ mã hóa vòng quay BEI tại việt nam 5/9/17
Rao Vặt Toàn Quốc Mã Hóa Xung – Encoder Omron tại việt nam 18/5/17
Rao Vặt Toàn Quốc Encoders IFM - Bộ mã hóa vòng quay IFM - CTC 1/11/16

Like và Share ủng hộ ITSEOVN