Board logo

标题: [其他] 纯批处理实现输入密码时不显示(障眼法) [打印本页]

作者: 随风    时间: 2008-5-8 10:25     标题: 纯批处理实现输入密码时不显示(障眼法)

纯 P 实现输入密码时不显示。 ( 障眼法)
代码思路来源与cn-dos的模拟线程。
http://www.cn-dos.net/forum/viewthread.php?tid=39880&fpage=1&highlight=%E7%BA%BF%E7%A8%8B
感觉似乎有点取巧,欢迎板砖 ^_^

改为滚动式的,大家看效果是否好点?
障眼法...... 让人看不清到底输入了什么。
  1. @echo off&color 1f
  2. title code 随风 @bbs.bathome.net 2008-05-08
  3. set "str=eaGOhrF+/.gvUsI\?52QKky1DZilnL3VPbH9ECjNm7S#t60Ap-TqwYXMB,Jzcd:uxofR@W48"
  4. if "%~1"=="loop" (
  5.   for /l %%a in (1 1 75) do call set "t=%%t%%"
  6.   for /l %%a in (1 1 70) do call set "ko= %%ko%%"
  7.   echo.&goto loop
  8. )
  9. subst z: "%cd%"
  10. start /b %~s0 loop
  11. cls&echo.&echo  请输入密码,输入过程将不显示输入内容。
  12. set /p code=
  13. subst z: /d
  14. cls&echo.&echo 你输入的密码是:%code%
  15. echo.&pause
  16. :loop
  17. if not exist z: exit
  18. set /p=%str% <nul
  19. set /p=%t%<nul
  20. for /l %%a in (1 1 500) do ver>nul
  21. set /p=%ko%<nul
  22. set /p=%t%<nul
  23. set /a w=%random%%%70+5,h=w+1
  24. call set str=%%str:~%w%,1%%%str:~-1%%%str:~0,%w%%%%%str:~%h%,-1%%
  25. goto loop
复制代码
显示*号,缺点是 密码明文会在首位闪现

:
  1. @echo off&color 1f
  2. title code 随风 @bbs.bathome.net 2008-05-08
  3. if "%~1"=="loop" (
  4.   for /l %%a in (1 1 70) do call set "t=%%t%%"
  5.   echo.&goto loop
  6. )
  7. subst z: "%cd%"
  8. start /b %~s0 loop
  9. cls&echo.&echo  请输入密码,输入过程将不显示输入内容。
  10. set /p code=
  11. subst z: /d
  12. cls&echo.&echo 你输入的密码是:%code%
  13. echo.&pause
  14. :loop
  15. if not exist z: exit
  16. set /p= **************<nul
  17. set /p=%t%<nul
  18. for /l %%a in (1 1 500) do ver>nul
  19. set /p=               <nul
  20. set /p=%t%<nul
  21. goto loop
复制代码

作者: youxi01    时间: 2008-5-8 12:04

提几点建议:
1、粗略地实现了 密码输入
2、模拟的不是太象
3、牺牲电脑资源..
作者: youxi01    时间: 2008-5-8 12:08

不过此法确实可以突破"set /p"的等待限制!
作者: 随风    时间: 2008-5-9 14:31

牺牲电脑资源只是暂时的,当输入完成后就不会了。
输入时密码明文会闪现,把*号改为滚动的字母加数字,可以更好“隐藏”闪现的密码
作者: 骚鸡    时间: 2008-7-13 18:01     标题: 回复 4楼 的帖子

第一个方法不错~!
就是我太菜了,看不懂~
人士间最大的痛苦莫过于此。。。。。
作者: netbenton    时间: 2009-12-3 19:40

模仿一个:
  1. @echo off&color 1f
  2. title code 随风 @bbs.bathome.net 2008-05-08
  3. if "%~1"=="loop" (
  4.   for /l %%a in (1 1 75) do call set "t=%%t%%"
  5.   for /l %%a in (1 1 70) do call set "ko= %%ko%%"
  6.   echo.&goto loop
  7. )
  8. subst z: "%cd%"
  9. start /b %~s0 loop
  10. echo.&echo;
  11. set /p code=  请输入密码:
  12. subst z: /d
  13. echo.&echo 你输入的密码是:%code%
  14. echo.&pause
  15. :loop
  16. (if not exist z: exit
  17. set /p=*<nul
  18. goto loop)
复制代码

作者: BillGates    时间: 2010-7-11 21:26

Vista显示正常不?
作者: canyuexiaolang    时间: 2010-7-12 07:37

啊啊啊。杀了你....我的QQ,VB,VC++的图标,还有360安全卫士的全没了
作者: caruko    时间: 2010-7-12 10:51

可以用choice试下,不过限制是密码只能是 a-zA-Z0-9,以及ASCII码128-250的字符
  1. @echo off
  2. set /p=请输入密码,以a结束:<nul
  3. :loop
  4. choice /C abcdefghijklmnopqrstuvwxyz /N >nul
  5. if %ERRORLEVEL% equ 1 goto :out
  6. set /p=*<nul
  7. goto :loop
  8. :out
  9. echo ok!
  10. pause>nul
复制代码

[ 本帖最后由 caruko 于 2010-7-12 10:56 编辑 ]
作者: BillGates    时间: 2010-7-12 14:32

运行完Z盘就不见啦,还有重启后Z盘也就不见了。图标什么都没问题。
作者: BillGates    时间: 2010-7-17 11:17

Vista运行不正常啊~~~求助~




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2