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

现在第六题,看有时间再做其他
  1. @rem 第六题
  2. @echo off
  3. set ucase=ABCDEFGHIJKLMNOPQRSTUVWXYZ
  4. set lcase=abcdefghijklmnopqrstuvwxyz
  5. set num=0123456789
  6. rem 下面是除了space外的特殊字符,共32个
  7. set "spec=!#$%%&'()*+,-./:;<=>?@[\]^_`{|}~""
  8. set "all=%ucase%%lcase%%num%%spec%"
  9. set /a len=26+26+10+32,count=1
  10. setlocal enabledelayedexpansion
  11. :start
  12. set op=&set o=
  13. rem 先分别在四种类型字符中选一个,保证至少存在四类字符
  14. for %%i in (%ucase%_26 %lcase%_26 %num%_10) do (
  15. set "tmp=%%i"
  16. set /a n=!random!%%!tmp:~-2!
  17. for %%j in (!n!) do set "op=!op!!tmp:~%%j,1!"
  18. )
  19. rem 特殊字符特殊处理
  20. set /a n=!random!%%32
  21. for %%i in (!n!) do set "op=!op!!spec:~%%i,1!"
  22. rem 再从所有字符中选出剩余的四个字符
  23. for /l %%i in (1 1 4) do (
  24. set /a n=!random!%%%len%
  25. for %%j in (!n!) do set "op=!op!!all:~%%j,1!"
  26. )
  27. rem 对8个字符做乱序处理,保证随机性
  28. for /l %%i in (8 -1 1) do (
  29. set /a n=!random!%%%%i
  30. for %%j in (!n!) do (
  31. set "o=!o!!op:~%%j,1!"
  32. set /a q=!n!+1
  33. for %%k in (!q!) do (set "op=!op:~0,%%j!!op:~%%k,8!")
  34. )
  35. )
  36. rem 判断是否重复,不重复则输出,出现重复的概率太小,个人认为没必要判断
  37. if %count% leq 100 (
  38. set c=%count%
  39. if %count% lss 100 (
  40. if %count% lss 10 (
  41. set c=00%count%
  42. ) else (
  43. set c=0%count%
  44. )
  45. )
  46. echo username: Bathome!c! password: !o!
  47. set /a count+=1
  48. if %count% lss 100 (goto start)
  49. )
  50. pause
复制代码
nevermore

TOP

回复 15# 523066680


    我和我的小伙伴都惊呆了!我才做了一题呀,就有奖品。只能说非常感谢管理员的慷慨❤
1

评分人数

    • lky216: 认真你就输了,还是不明真相的观众给你+技术 ...技术 + 1
nevermore

TOP

返回列表