求助,服务器这边通过php 返回的json串给手机客户端这边,在数据传递过程中 json数据需要加密。到底怎么来加密呢?不会就直接加密json串吧 这样肯定不行。

解决方案 »

  1.   

    可以详细讲解一下不 
    比如这个串 [{"goods_id":"18","cat_id":"2","goods_sn":"FDS000018","goods_name":"test"}]
      

  2.   

    如果是通过参数传递,那就用urlencode()加密:$url = '[{"goods_id":"18","cat_id":"2","goods_sn":"FDS000018","goods_name":"test"}]';
    $param = urlencode($url);
    echo $param;
    #%5B%7B%22goods_id%22%3A%2218%22%2C%22cat_id%22%3A%222%22%2C%22goods_sn%22%3A%22FDS000018%22%2C%22goods_name%22%3A%22test%22%7D%5D31
    接收到解密:urldecode($param);如果是传递的内容,如数组,那么可以用base64_encode()来加密:$url = '[{"goods_id":"18","cat_id":"2","goods_sn":"FDS000018","goods_name":"test"}]';
    $param = base64_encode($url);
    echo $param;
    #W3siZ29vZHNfaWQiOiIxOCIsImNhdF9pZCI6IjIiLCJnb29kc19zbiI6IkZEUzAwMDAxOCIsImdvb2RzX25hbWUiOiJ0ZXN0In1d31
    接收到解密:base64_decode($param);
      

  3.   

    简单点,直接写死就行了。json_encode得到字符串,对字符串加的偶数字节加噪声(比如异或某个1-127的整数),之后使用和客户端约定好的对称密钥解密就行了,对称密钥写死在服务端和客户端,免得让人不法人士看到。要安全的话很明显客户端应该走Https 443端口请求这个json串,而不是你在应用层自己加密数据。
      

  4.   

    两方约定密钥,Des加密可以,PHp加密,对端使用密码进行Des解密就搞定了
    密文体直接用json串