在php中存储十六进制字符串

时间:2011-05-03 00:19:48

标签: php

Php新手在这里。试图在我的代码中使用固定密钥。我该怎么做呢?

以C为例,我这样做 -

unsigned char key[] = { 0x3f, 0xee, 0x40, 0x93, 0x2f, 0xca, 0x7b, 0xdf, 0x9f, 0x04, 0x23, 0x62, 0x9e, 0x33, 0x98, 0x4f };

我该怎么做这个php?我知道我还没有完全理解php中的字符串概念,但是在php中没有字节数组的概念,但php如何处理二进制数据?我的意思是特定的签名和无符号字符。

我猜我可能会以某种方式使用hex2bin。这是C数组中上述键的正确表示吗?

$key = hex2bin('3fee40932fca7bdf9f0423629e33984f');

编辑:在代码中表示固定密钥的标准做法是什么?

1 个答案:

答案 0 :(得分:2)

你的C代码的PHP等价物是:

$key = array(
  0x3f,
  0xee,
  0x40,
  /* etc. */
);

PHP以智能方式完成任务:它为您处理数据类型。没有“unsigned char”这样的东西。只有一个整数,如果在其上使用正确的运算符,它很容易变成字符串或浮点数。无符号数的概念对PHP来说是陌生的。他们都签了名。如果您希望0x80成为-128,则需要寻找更多PHP-ish解决方案;)。