【问题标题】:Javascript function to Php到 PHP 的 Javascript 函数
【发布时间】:2012-09-25 13:57:02
【问题描述】:

我需要在 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;
}

【问题讨论】:

  • 在javascript中,可以使用parseInt('255', 16); // 0xFF进行编码,parseInt('0xFF', 10); // 255进行解码...如果已经是整数,则number.toString(16)

标签: php javascript decode encode


【解决方案1】:

您需要hexdecdechex 函数。

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

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

【讨论】:

  • 我不太了解编码和安全性。我做的最常见的事情是使用 md5,但在这种情况下,我需要对其进行解码,以便 dosnt 为我工作。我如何使用 SSL。你有什么链接可以推荐给我吗?
【解决方案2】:

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

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

或者:

hex2bin($str);

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

【讨论】:

  • 是的。我打算使用 md5,但我也需要解码密码,而在 md5 中我不能这样做。我还需要我所做的编码在 javacsript 和 php 中都有效。你有什么推荐给我的?
  • @JonathanCalb 在这种情况下,您最好以明文形式发送;除非您将服务器设置为使用 SSL,否则十六进制编码不会提供更多保护(这方面有很多方法)
猜你喜欢
  • 1970-01-01
  • 2010-09-18
  • 1970-01-01
  • 2017-12-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-04
  • 1970-01-01
  • 2011-07-18
相关资源
最近更新 更多