在PHP中加密整数


Encrypt Integers in PHP

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

No。如果要将整数加密为4字节二进制表示,则必须对其进行预转换:

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

unpack这再次解密后。

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