PHP实现动态口令PHP实现动态口令

生命不息,
折腾不止!

PHP实现动态口令

基础版本via

<div class="djs"> </div> 
<script type="text/javascript">
var s_Time = <?=time();?>;
var n_Time = <?=strtotime(date('Y-m-d H:i',strtotime("+1 minute")));?>;
document.getElementsByClassName("djs")[0].innerHTML = (n_Time-s_Time)+"秒后更新口令";
function getKey(){
 s_Time = s_Time + 1;
 if(!(n_Time-s_Time)){
  location.reload();
 }
 document.getElementsByClassName("djs")[0].innerHTML = (n_Time-s_Time)+"秒后更新口令";
}
setInterval("getKey()",1000);
</script>
<?php
header("content-type:text/html; charset=utf-8");//强行指定页面为utf-8
$pass_key = "abcd"; //key秘钥 abcd
$pass_time = date("YmdHi",time()); //时间格式 201808261749
$key = "".substr(md5($pass_key.$pass_time),5,7).""; //加密格式 md5($pass_key.$pass_time),除去前5,长度7)
//echo "本次动态口令:".substr(md5($pass_key.$pass_time),5,7)."<br />";
echo "本次动态口令:$key <br />"; //与上方 显示方式 任选其一即可。
echo "本次口令获取时间:".date('Y-m-d H:i',time())."<br />";
echo "口令下次更新时间:".date('Y-m-d H:i',strtotime("+1 minute"))."<br />";
?>

以数字显示

版本一

详情参考离线动态密码口令

<?php
$pass_key = 'a123456zhangfei';
$pass_time = date("YmdHi",time());
echo "本次动态口令:".substr(base_convert(md5($pass_key.$pass_time),16,10),5,6)."<br />";
echo "本次口令获取时间:".date('Y-m-d H:i',time())."<br />";
echo "口令下次更新时间:".date('Y-m-d H:i',strtotime("+1 minute"))."<br />";
?>

版本二

详情参考php正则表达式字符串中提取数字

<div class="djs"> </div> 
<script type="text/javascript">
var s_Time = <?=time();?>;
var n_Time = <?=strtotime(date('Y-m-d H:i',strtotime("+1 minute")));?>;
document.getElementsByClassName("djs")[0].innerHTML = (n_Time-s_Time)+"秒后更新口令";
function getKey(){
 s_Time = s_Time + 1;
 if(!(n_Time-s_Time)){
  location.reload();
 }
 document.getElementsByClassName("djs")[0].innerHTML = (n_Time-s_Time)+"秒后更新口令";
}
setInterval("getKey()",1000);
</script>
<?php
header("content-type:text/html; charset=utf-8");//强行指定页面为utf-8
$pass_key = "abcd"; //key秘钥 abcd
$pass_time = date("YmdHi",time()); //时间格式 201808261749
$key = "".substr(md5($pass_key.$pass_time),2,20).""; //加密格式 md5($pass_key.$pass_time),除去前2,长度20)
$string = preg_replace('/[^\d]*/', '', $key); // 输出 $string = $key中的数字
$str = "".substr($string,1,8).""; // 输出 $str = $string 中的数字,1表示第二位,8表示截取长度的位置
echo "本次动态口令:$key <br />"; //展示 $key 的口令结果。
echo "本次动态数字口令:$str  <br />"; //展示 $str 数字口令结果。
echo "本次口令获取时间:".date('Y-m-d H:i',time())."<br />";
echo "口令下次更新时间:".date('Y-m-d H:i',strtotime("+1 minute"))."<br />";
?>

 

PHP随机生成字符串函数 generateRandomString   

via:http://www.52img.cn/daima/php/jingyan/1000110000000249.html

我们想从0-9,a-z随机抽取几位字符,怎么办呢?用该函数是最简单的!

函数代码如下

function generateRandomString($length = 10) { 
        $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
        $randomString = ''; 
        for ($i = 0; $i < $length; $i++) { 
            $randomString .= $characters[rand(0, strlen($characters) - 1)]; 
        } 
        return $randomString; 
    }

然后在你要的地方直接.

echo generateRandomString(20);

则会输出一个随机的20位字符串 如:x13KNkjpiDlhVfgqdYWQ

 

 

赞() 打赏
未经允许不得转载:我的博客 » PHP实现动态口令
分享到: 更多 (0)

评论 4

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    这是评论测试

    DUX主题小秘7个月前 (09-17)回复
    • 飞歌导航东方红烦得很

      themebetter主题小秘3周前 (04-08)回复
  2. #2

    这是新的一条评论

    DUX主题小秘7个月前 (09-17)回复
  3. #3

    未来一年,中国的移动支付市场会是什么样?

    DUX主题小秘7个月前 (09-17)回复

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

大前端WP主题 更专业 更方便

联系我们 联系我们