标签: php encryption openssl mcrypt
我注意到PHP中的openssl和mcrypt函数都只接受数据加密为字符串。这意味着(int)1234567890的值被转换并加密为10字节字符串,当它最初只是一个4字节的int时。是否有任何加密方法(与PHP捆绑或作为外部函数/类)允许加密整数?
答案 0 :(得分:2)
没有。如果要将整数加密为4字节二进制表示,则必须预转换它:
$bin = pack("L", $int); // unsigned 4-byte integer xyz_crypt(...)
解密后再次unpack。
unpack
答案 1 :(得分:1)
mcrypt对字符串而不是整数进行操作,因此您需要使用pack()将整数打包成4字节的字符串。 (反函数明显足够unpack()。)
pack()
unpack()