2012-08-02 189 views
1

这可能是一个明显的答案,但我不出来...Base64编码问题

我读这个Wikipedia条目,http://en.wikipedia.org/wiki/WebSocket#WebSocket_protocol_handshake并在本例中,它说的1d29ab734b0c9585240069a6e4e3e91b61da1969 Base64编码字符串HSmrc0sMlYUkAGmm5OPpG2HaGWk=

现在使用PHP函数base64_encode我得到了不同的输出。我在一些在线base64编码器上也得到了不同的结果!地狱是从维基百科获得这个base64价值?

+0

不同的编码? [你的输出是什么?](http://codepad.org/5UsSuqPq) – 2012-08-02 03:02:11

+0

我的编码为'1d29ab734b0c9585240069a6e4e3e91b61da1969'的输出是'MWQyOWFiNzM0YjBjOTU4NTI0MDA2OWE2ZTRlM2U5MWI2MWRhMTk2OQ ==' – 2012-08-02 03:03:12

回答

3

1d29ab734b0c9585240069a6e4e3e91b61da1969是您需要base64编码sha1二进制值的十六进制字符串。

<?= base64_encode(pack('H*','1d29ab734b0c9585240069a6e4e3e91b61da1969'))?> 

http://ideone.com/K0d6y

0

,或者你可以简单地;

base64_encode(sha1(<shavalue>,true));