如何在Yii2中执行此Yii代码

时间:2016-02-07 09:00:52

标签: php encryption yii yii2

实际上我需要加密yii2 url id,如下所示

例如: 从:

http://localhost/projectname/backend/web/index.php?r=user%2Fview&id=20

为:

http://localhost/projectname/backend/web/index.php?r=user%2Fview&id=Wmg4T2FZTkNhVjFIMGlrU1ZDUkhMZz09

在搜索解决方案时,我在Yii上找到了解决方案。

那么如何将此代码转换为Yii2。 conifg / main.php

'Urlmanager' => [
'rules' => array(
'' => 'site/index', // normal URL rules
array(// your custom URL handler
'class' => 'application.components.CustomUrlRule',
),
),
]

和我的组件CustomUrlRule,

class CustomUrlRule extends CBaseUrlRule {

public function createUrl($manager, $route, $params, $ampersand) {
$key = "testKey";
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $route, MCRYPT_MODE_CBC, md5(md5($key))));
}

public function parseUrl($manager, $request, $pathInfo, $rawPathInfo) {
$key = "testKey";
return rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($pathInfo), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
}

}

这将输出 - > http://localhost/projectname/backend/web/index.php?r=user%2Fview&id=sTK7yXb5Pu22d4n5tbGgT6hwQxhvlrzAe5KWJ0Y4020=

请帮助我将上面的代码转换为Yii2

1 个答案:

答案 0 :(得分:0)

  

实际上我需要加密yii2 url id,如下所示

您确定要encrypt your URL parameters吗?