Maison >développement back-end >tutoriel php >Analyse de la fonction des paramètres chiffrés transmis par la méthode U dans thinkPHP

Analyse de la fonction des paramètres chiffrés transmis par la méthode U dans thinkPHP

不言
不言original
2018-06-09 14:22:202278parcourir

Cet article présente principalement la fonction de transfert de paramètres cryptés par la méthode U dans thinkPHP et analyse les compétences opérationnelles pertinentes de thinkPHP en utilisant la méthode U pour crypter les paramètres lors de la transmission des paramètres sous forme d'exemples. Les amis dans le besoin peuvent s'y référer

L'exemple de cet article décrit la fonction de transmission de paramètres chiffrés par la méthode U dans thinkPHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

La méthode U dans thinkPHP est utilisée pour assembler l'adresse URL. L'adresse URL correspondante peut être générée automatiquement en fonction du mode et des paramètres URL actuels.

Le code spécifique est le suivant :

<?php
/**
 * 简单对称加密算法之加密
 * @param String $string 需要加密的字串
 * @param String $skey 加密EKY
 */
function encode($string = &#39;&#39;, $skey = &#39;yourkey&#39;) {
 $strArr = str_split(base64_encode($string));
 $strCount = count($strArr);
 foreach (str_split($skey) as $key => $value)
  $key < $strCount && $strArr[$key].=$value;
 return str_replace(array(&#39;=&#39;, &#39;+&#39;, &#39;/&#39;), array(&#39;O0O0O&#39;, &#39;o000o&#39;, &#39;oo00o&#39;), join(&#39;&#39;, $strArr));
}
/**
 * 简单对称加密算法之解密
 * @param String $string 需要解密的字串
 * @param String $skey 解密KEY
 */
function decode($string = &#39;&#39;, $skey = &#39;yourkey&#39;) {
 $strArr = str_split(str_replace(array(&#39;O0O0O&#39;, &#39;o000o&#39;, &#39;oo00o&#39;), array(&#39;=&#39;, &#39;+&#39;, &#39;/&#39;), $string), 2);
 $strCount = count($strArr);
 foreach (str_split($skey) as $key => $value)
  $key <= $strCount && $strArr[$key][1] === $value && $strArr[$key] = $strArr[$key][0];
 return base64_decode(join(&#39;&#39;, $strArr));
}
/**
将以上两个函数放在Common下的function.php公共函数中。
用法:常用语get传参
 前端:<a href="<{:U(&#39;Index/view&#39;,array(&#39;id&#39;=>encode($data[&#39;id&#39;]),&#39;name&#39;=>encode($data[&#39;title&#39;])))}>" rel="external nofollow" ><{$data.title}></a>
 后台:view方法中:$id = decode(trim(I("get.id")));即可还原
 view模板中:<font color="red"><{$Think.get.name|decode}></font>
**/
/*建议将key自行修改,尽量不要太长,不然url很长,适当即可,加密性能很好,亲测*/
Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention. au site Web PHP chinois !

Recommandations associées :

Analyse de la méthode N de ThinkPHP

Analyse de l'utilisation de la méthode I de ThinkPHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn