0

我需要在 javscript 中将密码编码为十六进制,然后在 php 中对其进行解码。我有一个函数可以做这两件事,但在 javascript 中。我试图将其转换为 php,但有一些我不知道 php 等效的 javascript 本机函数。

编码函数(Javascript)

function encodeToHex(str){
    var r="";
    var e=str.length;
    var c=0;
    var h;
    while(c<e){
        h=str.charCodeAt(c++).toString(16);
        while(h.length<3) h="0"+h;
        r+=h;
    }
    return r;
}

解码功能(Javascript)

function decodeFromHex(str){
    var r="";
    var e=str.length;
    var s;
    while(e>=0){
        s=e-3;
        r=String.fromCharCode("0x"+str.substring(s,e))+r;
        e=s;
    }
    return r;
}

解码功能(PHP) <<这是我想要实现的

function decodeFromHex($str){
$r="";
$e=str.length;
$s;
while($e>=0){
        $s=$e-3;
        $r=String.fromCharCode("0x"+str.substring($s,$e))+$r;
        $e=$s;
    }
    return $r;
}
4

2 回答 2

0

您需要hexdecdechex函数。

顺便说一句,您可以通过 php 在 php 中获得字符串长度strlen()

最后一点,客户端编码毫无意义,因为很容易嗅探和解码您的数据 - 如果您想确定,请使用 SSL over HTTPS。

于 2012-09-25T14:02:22.920 回答
0

可以使用以下任一方法在 PHP 中解码 HEX 值:

current(unpack('H*', $str))

或者:

hex2bin($str);

我希望您并没有真正将密码编码为十六进制

于 2012-09-25T14:03:13.333 回答