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]