[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[加密解密] 批处理记录、修改自身密码

闲来无事,写了个可修改自身密码的批处理
特点:
     把批处理的密码乱序后记录在自身的第一行,增加 “安全性” 呵呵。。
  输入正确密码后,可以修改密码。新密码同样会被乱序后写在第一行。
  不产生临时文件,不导致文件无限扩大。
  1. ::246897531
  2. @echo off
  3. ::code 随风 @bbs.bathome.net   2008-04-17
  4. set /p code=<"%~0"
  5. set "code=%code:~2%"
  6. setlocal EnableDelayedExpansion
  7. call :lis "%code%"
  8. endlocal&set "code=%a%"
  9. set /a ci=3
  10. :ccc
  11. cls
  12. echo\&echo  你还有 %ci% 次机会
  13. echo\&echo  正确密码是:%code%
  14. echo\&set /p mm= 请输入密码:
  15. if /i "%mm%"=="%code%" goto ok
  16. set /a ci-=1
  17. if %ci% equ 0 (goto cuo) else goto ccc
  18. :ok
  19. cls&echo 密码正确
  20. echo\&echo 可直接输入新密码,直接按回车保留原密码
  21. set /p code=
  22. setlocal EnableDelayedExpansion
  23. call :loop "%code%"
  24. endlocal&set "code=%b%%a%"
  25. echo %code%
  26. goto xie
  27. :lis 将密码还原
  28. set a=!a!!code:~-1,1!
  29. set code=!code:~0,-1!
  30. if not defined code goto :eof
  31. set a=!a!!code:~0,1!
  32. set code=!code:~1!
  33. if defined code goto lis
  34. goto :eof
  35. :loop 将密码乱序
  36. set a=!code:~0,1!!a!
  37. set code=!code:~1!
  38. if not defined code goto :eof
  39. set b=!b!!code:~0,1!
  40. set code=!code:~1!
  41. if not defined code goto :eof
  42. goto loop
  43. :cuo
  44. cls&echo\&echo  密码连续输入错误,下次再试吧。。。
  45. echo\&echo  按任意键退出。。。
  46. echo\&pause>nul&exit
  47. :xie
  48. for /f "delims=" %%a in ('type "%~0"') do (
  49.   if not defined flag (
  50.     set flag=a
  51.     >"%~0" echo ::%code%
  52.   ) else >>"%~0" echo %%a
  53. )
复制代码
技术问题请到论坛发帖求助!

积极学习中..........

TOP

牛啊
嘘唏
学习了。能不能解释每行的代码含义啊。
@set,=学无止境
@for /l %%b in (0,1,6) do @call set/p= %%,:~%%b,1%%<nul

TOP

“%~0”学习了~

TOP

貌似我还是不太明白

TOP

不懂有什么用处呢

TOP

返回列表