Hướng dẫn dùng hextodec trong PHP

Tôi gặp sự cố khi chuyển đổi giữa 2 loại này trong PHP. Đây là mã tôi đã tìm kiếm trên google

function strToHex[$string]{
    $hex='';
    for [$i=0; $i < strlen[$string]; $i++]{
        $hex .= dechex[ord[$string[$i]]];
    }
    return $hex;
}


function hexToStr[$hex]{
    $string='';
    for [$i=0; $i < strlen[$hex]-1; $i+=2]{
        $string .= chr[hexdec[$hex[$i].$hex[$i+1]]];
    }
    return $string;
}

Tôi kiểm tra nó và phát hiện ra điều này khi tôi sử dụng XOR để mã hóa.

Tôi có chuỗi "this is the test", sau khi XOR với một khóa, tôi có kết quả là chuỗi ↕↑↔§P↔§P ♫§T↕§↕. Sau đó, tôi đã cố gắng chuyển đổi nó thành hex bằng hàm strToHex [] và tôi nhận được những thứ này 12181d15501d15500e15541215712. Sau đó, tôi đã thử nghiệm với hàm hexToStr [] và tôi có ↕↑↔§P↔§P♫§T↕§q. Vì vậy, tôi phải làm gì để giải quyết vấn đề này? Tại sao nó sai khi tôi chuyển đổi giá trị 2 kiểu này?

  • php
  • string
  • hex

55 hữu ích 4 bình luận 225k xem chia sẻ

answer

89

Đối với những người kết thúc ở đây và chỉ đang tìm kiếm biểu diễn hex của một chuỗi [nhị phân].

bin2hex["that's all you need"];
# 74686174277320616c6c20796f75206e656564

hex2bin['74686174277320616c6c20796f75206e656564'];
# that's all you need

Tài liệu: bin2hex , hex2bin .

89 hữu ích 1 bình luận chia sẻ

answer

53

Đối với bất kỳ char nào có ord [$ char]

Chủ Đề