Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP string to hex

I have a string like that:

[0-9A-Za-z\+/=]*

How can I converted in the following form:

"\133\x30\55\x39\101\x2d\132\x61\55\x7a\134\x2b\57\x3d\135\x2a"

Is there any function for that ?

like image 650
KodeFor.Me Avatar asked Dec 16 '11 17:12

KodeFor.Me


2 Answers

function strtohex($string)
{
  $string = str_split($string);
  foreach($string as &$char)
    $char = "\x".dechex(ord($char));
  return implode('',$string);
}

print strtohex("[0-9A-Za-z\+/=]*");

The above code will give you

\x5b\x30\x2d\x39\x41\x2d\x5a\x61\x2d\x7a\x5c\x2b\x2f\x3d\x5d\x2a

I'm aware that it doesn't look like the output you expect, but that doesn't seem to be string to hex at all.

like image 89
kba Avatar answered Oct 19 '22 21:10

kba


If you want to perform such a string obfuscation, then use something like @Kristians approach. And you can alternate between the two encoding methods with e.g.:

 $char = (++$i%2) ? "\x".dechex(ord($char)) : "\\".decoct(ord($char));
like image 2
mario Avatar answered Oct 19 '22 19:10

mario