>  기사  >  백엔드 개발  >  thinkPHP에서 U 메소드를 통해 전달된 암호화된 매개변수의 기능 분석

thinkPHP에서 U 메소드를 통해 전달된 암호화된 매개변수의 기능 분석

不言
不言원래의
2018-06-09 14:22:202216검색

이 글에서는 주로 thinkPHP의 U 방식 암호화 매개변수 전송 기능을 소개하고, 예시 형식으로 매개변수를 전달할 때 매개변수를 암호화하는 U 방식을 사용하여 thinkPHP의 관련 운영 기술을 분석합니다.

thinkPHP의 U 메소드 암호화 매개변수 전달 기능을 설명합니다. 참고를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다:

thinkPHP의 U 메소드는 URL 주소를 조합하는 데 사용됩니다. 해당 URL 주소는 현재 URL 모드 및 설정에 따라 자동으로 생성될 수 있습니다.

구체적인 코드는 다음과 같습니다.

<?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很长,适当即可,加密性能很好,亲测*/

위 내용은 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 추천 :

ThinkPHP의 N 메소드 분석

ThinkPHP의 I 메소드 활용 분석

위 내용은 thinkPHP에서 U 메소드를 통해 전달된 암호화된 매개변수의 기능 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.