bat过滤任意字符
set/p password=
set |findstr "ph4nt0m"
if "%errorlevel%"=="0" echo 口令精确&goto end
echo 口令错误&goto allyesno
:end
echo 你乐成登录系统
实行效果如下
Codz:
请输入登录口令
test
口令错误
请输入登录口令
"
口令错误
请输入登录口令
ph4nt0m
password=ph4nt0m
口令精确
你乐成登录系统
C:\test>
程序进一步的完美了
但是还是有题目D 我们再来看 换一种方法实行
Codz:
请输入登录口令
test
口令错误
请输入登录口令
ph4nt0mallyesno
password=ph4nt0mallyesno
口令精确
你乐成登录系统
C:test>
由于程序的验证方法是 set |findstr "ph4nt0m" 所以只要包罗ph4nt0m字符的 密码 都被当成精确密码 所以密码ph4nt0mallyesno 也经过了
为了制止这个题目 我设置了 立室参数\<\> 对数据进行查验 修正后的程序 如下
Codz:
@echo off
cls
:allyesno
set errorlevel=>nul
echo 请输入登录口令
set/p password=
set |findstr "\
if "%errorlevel%"=="0" echo 口令精确&goto end
echo 口令错误&goto allyesno
:end
echo 你乐成登录系统
实行效果
Codz:
请输入登录口令
test
口令错误
请输入登录口令
ph4nt0mallyesno
口令错误
请输入登录口令
ph4nt0m
password=ph4nt0m
口令精确
你乐成登录系统
C:test>
末了再将程序 修整 如下
Codz:
@echo off
cls
:allyesno
set errorlevel=>nul
echo 请输入登录口令
set/p password=
rem 如果密码字符串包罗此行任一字符~`!@#$%^&*()_+|-=[]{};':,./<>? 则必须使用立室形式<>
rem 必要双写的字符
rem 不可以作为密码的字符 "
set password|findstr "\
if "%errorlevel%"=="0" echo 口令精确&goto end
echo 口令错误&goto allyesno
:end
set password=>nul
echo 你乐成登录系统
注:当密码字符串中有字符\的时候 必要将字符双写\\
例 set password|findstr "\<\\\>"
登录的时候 只必要写一次\不必要双写
" 字符 不可以作为密码字符串 如果密码字符串包罗此行任一字符~`!@#$%^&*()_+|-=[]{};':,./<>? 则必须使用立室形式\<\>
- 文章作者: 福州军威计算机技术有限公司
军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。
TAG:
评论加载中...
|
上一篇: 数据库入侵方法
下一篇: 了解如何选择无线加密的方法