微信小程序用户信息解密

在编写微信小程序中,我们获取用户信息是,
并不是所以的信息都是以明文显示出来,
例如手机号这些信息,需要我们进行解码,
才能正常显示出来,下面记录一个自己日常使用的解码函数:

/**
 * [wxBizDataCrypt 检验数据的真实性,并且获取解密后的明文.]
 * @param  [type] $appid         [小程序APPID]
 * @param  [type] $sessionKey    [SESSSION KEY]
 * @param  [type] $encryptedData [加密的用户数据]
 * @param  [type] $iv            [与用户数据一同返回的初始向量]
 * @return [type]                [description]
 */
function wxBizDataCrypt($appid, $sessionKey, $encryptedData, $iv )
{
    if (strlen($sessionKey) != 24) // -41001
        return false;

    $aesKey=base64_decode($sessionKey);
    if (strlen($iv) != 24) // -41002
        return false;

    $aesIV=base64_decode($iv);
    $aesCipher=base64_decode($encryptedData);
    $result=openssl_decrypt( $aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);
    $dataObj=json_decode( $result );
    // var_dump($appid);
    // var_dump($dataObj->watermark->appid);
    // var_dump(json_encode($dataObj));die;
    if( $dataObj == NULL ) // -41003
        return false;

    if( $dataObj->watermark->appid != $appid ) // -41003
        return false;

    return $result;
}

冯奎博客
请先登录后发表评论
  • latest comments
  • 总共0条评论