php-base64编码的数据在json_encode之后丢失

时间:2017-12-19 19:54:06

标签: php json base64 php-openssl

我使用以下代码为给定字符串生成加密字符串。

[]

使用此代码,我生成了模型对象id的加密id,并替换了原始id。

(x:[])

对于使用加密ID替换原始ID后,(_:xs)的给定实例class MY_class{ public static function cryption($string){ $output = base64_encode(openssl_encrypt($string, $cipher_method, $key, 0, $iv)); $output = $iv . $output; return $output; } } ,我会得到以下结果。

$Model_object = Model_class::find(1);
$Model_object->id = MY_class::cryption($Model_object->id);
echo json_encode($Model_object);

print_r()仅输出加密id的第一个十进制数字。

$Model_object

如果有人能解释为什么会这样,以及如何解决这个问题,我真的很感激。

P.S。我已经用Google搜索了这个问题并在Stack Overflow中进行了搜索。所以,请不要在评论中提及它。

1 个答案:

答案 0 :(得分:0)

正如@LSerni所说,我隐含地将加密的id( string )分配给 integer 属性$Model_object->id

所以我创建了一个新的动态属性$Model_object->encrypted_id,并为其分配了加密的id,并在另一侧调用了该属性。它就像一个魅力。

非常感谢@LSerni对这个问题的见解。