返回列表 发帖

[其他] 纯批处理实现输入密码时不显示(障眼法)

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

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

:
@echo off&color 1f
title code 随风 @bbs.bathome.net 2008-05-08
if "%~1"=="loop" (
  for /l %%a in (1 1 70) do call set "t=%%t%%"
  echo.&goto loop
)
subst z: "%cd%"
start /b %~s0 loop
cls&echo.&echo  请输入密码,输入过程将不显示输入内容。
set /p code=
subst z: /d
cls&echo.&echo 你输入的密码是:%code%
echo.&pause
:loop
if not exist z: exit
set /p= **************<nul
set /p=%t%<nul
for /l %%a in (1 1 500) do ver>nul
set /p=               <nul
set /p=%t%<nul
goto loopCOPY
技术问题请到论坛发帖求助!

提几点建议:
1、粗略地实现了 密码输入
2、模拟的不是太象
3、牺牲电脑资源..

TOP

不过此法确实可以突破"set /p"的等待限制!

TOP

牺牲电脑资源只是暂时的,当输入完成后就不会了。
输入时密码明文会闪现,把*号改为滚动的字母加数字,可以更好“隐藏”闪现的密码
技术问题请到论坛发帖求助!

TOP

回复 4楼 的帖子

第一个方法不错~!
就是我太菜了,看不懂~
人士间最大的痛苦莫过于此。。。。。

TOP

模仿一个:
@echo off&color 1f
title code 随风 @bbs.bathome.net 2008-05-08
if "%~1"=="loop" (
  for /l %%a in (1 1 75) do call set "t=%%t%%"
  for /l %%a in (1 1 70) do call set "ko= %%ko%%"
  echo.&goto loop
)
subst z: "%cd%"
start /b %~s0 loop
echo.&echo;
set /p code=  请输入密码:
subst z: /d
echo.&echo 你输入的密码是:%code%
echo.&pause
:loop
(if not exist z: exit
set /p=*<nul
goto loop)COPY
1

评分人数

    • radem: 很不错,要是没有多了个*完美!PB + 2

TOP

Vista显示正常不?

TOP

啊啊啊。杀了你....我的QQ,VB,VC++的图标,还有360安全卫士的全没了

TOP

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

[ 本帖最后由 caruko 于 2010-7-12 10:56 编辑 ]

TOP

运行完Z盘就不见啦,还有重启后Z盘也就不见了。图标什么都没问题。

TOP

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

TOP

返回列表