在PHP中加密整数

时间:2011-09-05 04:38:13

标签: php encryption openssl mcrypt

我注意到PHP中的openssl和mcrypt函数都只接受数据加密为字符串。这意味着(int)1234567890的值被转换并加密为10字节字符串,当它最初只是一个4字节的int时。是否有任何加密方法(与PHP捆绑或作为外部函数/类)允许加密整数?

2 个答案:

答案 0 :(得分:2)

没有。如果要将整数加密为4字节二进制表示,则必须预转换它:

$bin = pack("L", $int);    // unsigned 4-byte integer
xyz_crypt(...)

解密后再次unpack

答案 1 :(得分:1)

mcrypt对字符串而不是整数进行操作,因此您需要使用pack()将整数打包成4字节的字符串。 (反函数明显足够unpack()。)