快速业务通道

VBS基础教程

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09
一个. 谁会运行这样的程序? 除非是给别人捣乱(我就干过这种事), 所以在do..loop结构中还有一个语句:exit do, 这个语句将终止循环, 跳到loop后面的语句继续执行.举个例子来说:
  dim a ''注意:常量不需要在dim里面声明,否则会引发错误
  const pass="123456" ''这是一个字符串 请用""包裹起来. 设定密码为常量, 不可变更
  do
  a=inputbox("请输入密码")
  if a=pass then
  msgbox "密码校验成功"
  exit do
  end if
  loop

  这个程序会一直不停的问你密码, 知道你输入了正确的密码为止.(if可以嵌套在另一个if当中, 也可以嵌套在循环体当中, 所以一定要用缩进, 来分清楚程序的各个部分). 这个程序是很经典的, 早期的程序都是这么做的. 但是我们是Hacker, 所以我们了解系统的安全性, 这种无限次认证程序很容易被穷举破解, 我们要来限定认证的次数. 修改程序如下

  dim a,ctr
  ctr=0 ''设置计数器
  const pass="pas123_" ''上面的那个是弱密码, 这次改的强一点
  do
  a=inputbox("请输入密码")
  if a=pass then
  msgbox "认证成功"
  exit do
  else
  if ctr=3 then
  msgbox "已经达到认证上限, 认证程序关闭"
  exit do
  else
  ctr=ctr+1 注意:这一句是赋值句,要从右往左读,即每出错一次就把ctr加上1,然后再放回ctr里面,使得这个常量加1

  msgbox "认证出错, 请检查密码"
  end if
  end if
  loop

  运行这个程序试试看, 当你出了3次错误以后, 就会停止再次询问密码, 关闭程序. telnet认证用来限制次数的程序与此大同小异. 要注意的是嵌套的if语句, 请仔细读一下这个程序, 可能比较难懂, 也请你试着自己设计一下类似的程序.

  其实, 要在do...loop加上验证的功能, 并不一定要用if, 我们可以直接利用do. 我来介绍一下while关键字, while可以放在do或者是loop后面, 然后再接一个表达式, 当表达式的值为true的时候(表达式成立),才运行循环体.我们来看一下修改后的程序"
复制代码 代码如下:

  dim a,ctr
  ctr=0
  const pass="pas123_"
  do while ctr<3
  a=inputbox("请输入密码")
  if a=pass then
  msgbox "认证成功"
  msgbox "(你可以在这里加一段成功后得到的信息)"
  exit do
  else
  ctr=ctr+1 ''如果密码出错就增加一次错误认证计数
  msgbox "认证出错, 请检查密码"
  end if
  loop

  这样实现的功能和上一个例子完全一样, 我们再来看看把while放在loop后面:
复制代码 代码如下:

  dim a,ctr
  ctr=0
  const pass="pas123_"
  do
  a=inputbox("请输入密码")
  if a=pass then
  msgbox "认证成功"
  msgbox "(你可以在这里加一段成功后得到的信息)"
  exit do
  else
  ctr=ctr+1 ''如果密码出错就增加一次错误认证计数
  msgbox "认证出错, 请检查密码"
  end if
  loop while ctr<3

  功能是一样的, 为什么要放在loop后面呢? 你把ctr的值改成3就知道了, while在do后面的程序会直接退出, 而在loop后面还会允许一次认证, 到了loop才结束.和while相反的是until, 用法和while一样, 不过他只有当后面的表达式的值为false(表达式不成立)的时候才执行循环体, 请自己试验一下

  ok, 我们来看另外一种循环结构,for....next, 这种循环结构是基于计数的, 也是在编程中最常见到的循环结构.
复制代码 代码如下:

  dim i
  for i=0 to 5
  msgbox i
  next

  看到了吗?每次输出的i都是递增的, 但我们没有明确指出i要递增, 当i达到5的时候, 循环就结束了, 因为由0开始, 所以循环体执行了6次, 这一点很重要, 大部分东西都是从0开始而不是1. 这个程序也可以写

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号