ZF2加密参数

时间:2014-03-12 10:39:58

标签: encryption zend-framework2

在我的ZF2应用程序中我想加密我的参数,这样当有/ product / update / 1这样的链接时会显示为/ product / update / cdsk45kdi340kd0wlw0或类似的东西。我需要在控制器和视图中加密和解密它。对此最好的方法是什么?谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

让路线看起来像这样

'product' => array(
  'type' => 'Zend\Mvc\Router\Http\Segment',
  'options' => array(
    'route'    => '/product/update[/:hashedid]',
    'constraints' => array(
      'hashedid' => '[a-zA-Z0-9-_\.]+',
    ),
    'defaults' => array(
      'controller' => 'Index',
      'action'     => 'index',
    ),
   ),
 ),

并在控制器中

$hashedid = $this->params()->fromRoute('hashedid', 0);
$id = $this->dehash($hashedid);

答案 1 :(得分:1)

这里的要点是你想避免用户猜猜网址。我会为每个产品生成一个随机令牌。将此令牌与产品的ID(以及所有其他属性)一起存储在您的数据库中。

要生成随机字符串作为标记,您可以使用Zend\Math\RandRand::getString(10);为您提供10个字符的随机字符串。将产品存储在数据库中时,请为每个产品生成随机字符串。然后,在您的控制器中,您不会根据标识符(id)获取产品,而是基于令牌。