URL数字安全码随机拼组生成及校验
URL数字随机重组校验,URL地址id随机加密生成及逆向校验 URL加密解密
PHP版本:
- echo geturl(888);
- //输出结果:https://www.fity.cn/post/984-1186-187-2698712709009 //每次刷新数值都会全部改变。
- //实现原理:对数字888重组后为999,然后999+187=1186。可应用到一些防刷、防采页面,如投票防刷(id数字不公开全在服务端处理好)。
- /** 地址拼组 */
- function geturl($a){
- return $href = "https://www.fity.cn/post/".renum($a);
- }
- /** 数字重组 未来往事博客:https://www.fity.cn */
- function renum($a){
- $n = numScaler($a);
- $c = SetRandNum(strlen($a));
- $d = SetRandNum(strlen($a));
- $n = intval($n) + intval($d);
- $b = getMillisecond();
- $b = numScaler($b);
- return $c."-".$n."-".$d."-".$b;
- }
- /** 数字换算 */
- function numScaler($a){
- $str=str_split((string)$a);
- $b="";
- foreach($str as $key => $val){
- switch($val){
- case "0":$b .="0";break;
- case "1":$b .="2";break;
- case "2":$b .="5";break;
- case "3":$b .="8";break;
- case "4":$b .="6";break;
- case "5":$b .="1";break;
- case "6":$b .="3";break;
- case "7":$b .="4";break;
- case "8":$b .="9";break;
- case "9":$b .="7";break;
- }
- }
- return $b;
- }
- /** 随机值生成 未来往事博客:https://www.fity.cn */
- function SetRandNum($n){
- $a="";
- for($i=0;$i<$n;$i++){
- $a .= floor(random()*10);
- }
- return $a;
- }
- /** 0.0-1.0随机值生成 */
- function random(){
- return mt_rand() / (mt_getrandmax() + 1);
- }
- /** 获取当前时间戳,精确到毫秒 */
- function getMillisecond() {
- list($t1, $t2) = explode(' ', microtime());
- return (float)sprintf('%.0f', (floatval($t1) + floatval($t2)) * 1000);
- }
jquery版本:
- <a id="888" style="cursor:pointer" onclick="geturl(this)" target="_blank" title="未来往事博客测试文章">未来往事博客测试文章</a>
- <input type='hidden' name='randcode' id='randcode' value='1483953255201' />
- <script src="https://code.jquery.com/jquery-1.8.2.min.js" integrity="sha256-9VTS8JJyxvcUR+v+RTLTsd0ZWbzmafmlzMmeZO9RFyk=" crossorigin="anonymous"></script>
- <script type="text/javascript">
- function geturl(a){
- a.href="https://www.fity.cn/post/"+renum(a.id)
- }
- /** 数字重组 未来往事博客:https://www.fity.cn */
- function renum(a){
- var n=numScaler(a);
- var c=SetRandNum(a.length);
- var d=SetRandNum(a.length);
- n=parseInt(n)+parseInt(d);
- var b = $("#randcode").val(); //获取含毫秒的时间戳
- b=numScaler(b.toString());
- return c+"-"+n+"-"+d+"-"+b;
- }
- /** 数字换算 */
- function numScaler(a){
- var b="";
- $.each(a,function(i,e){
- switch(e){
- case"0":b+="0";break;
- case"1":b+="2";break;
- case"2":b+="5";break;
- case"3":b+="8";break;
- case"4":b+="6";break;
- case"5":b+="1";break;
- case"6":b+="3";break;
- case"7":b+="4";break;
- case"8":b+="9";break;
- case"9":b+="7";break
- }
- });
- return b
- }
- /** 随机值生成 未来往事博客:https://www.fity.cn */
- function SetRandNum(n){
- var a="";
- for(var i=0;i<n;i++)a+=Math.floor(Math.random()*10);
- return a
- }
- </script>
本文作者:未来往事
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
此处评论已关闭