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

[文本处理] 如何用批处理生成多个固定长度由大小写字母数字指定符号组成的密码字符串

本帖最后由 pcl_test 于 2016-11-15 07:41 编辑

我要生成长度为12的密码,取自S1=[a-z] S2=[A-Z] S3=[0-9] S4=[!@#$%^&*()]
S1-S4每个里边随机取3个值 生成最后的密码,一次生成100个 怎么弄

例如abcABC123!@#

TOP

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 codegay 于 2016-11-15 05:45 编辑

我复习一下python,
这并不是个难题
  1. #2016年11月15日5:30:21 codegay
  2. #生成随机密码
  3. from random import sample
  4. az = 'abcdefghijklmnopqrstuvwxyz'
  5. AZ = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  6. digits = '0123456789'
  7. punctuation = '!@#$%^&*()'
  8. for r in range(100):
  9.     s1 = sample(az,3)
  10.     s2 = sample(AZ,3)
  11.     s3 = sample(digits,3)
  12.     s4 = sample(punctuation,3)
  13.     password = ''.join(s1+s2+s3+s4)
  14.     print(password)
  15.    
复制代码
输出:
  1. mnTNC376!&$
  2. qyiOMQ629!$&
  3. sjbRYN957!&(
  4. jcaFZI168)@(
  5. ygwSPO350%($
  6. hirKAN986&@^
  7. sgmAJI486!($
  8. hydKBN641^$)
  9. rowHTL435@$)
  10. qxsMXT845%@&
  11. mlvSWQ820^#@
  12. uwsXVI094^!(
  13. ketGFV216)!#
  14. yebYQS320^($
  15. xmiGUS564*#!
  16. kinDGK819)@#
  17. pyiGYF856#*%
  18. jbcIXM593!&*
复制代码
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 4# codegay


    我不会python,但是很感谢,看python这些代码貌似很好理解

TOP

本帖最后由 pcl_test 于 2016-11-15 11:58 编辑
  1. @echo off
  2. rem win7及以上系统运行
  3. set "char=!@#$%%^&*()"
  4. powershell -c "1..100|%%{$n=0;(&{65..90|Get-Random -Count 6|%%{if(++$n -le 3){(''+[char]$_).ToLower()}else{[char]$_}};0..9|Get-Random -Count 3;'%char%'.ToCharArray()|Get-Random -Count 3}) -join ''}"
  5. pause
复制代码

TOP

回复 3# Batcher


    恩,这个确实很强大,考虑的也比较全

TOP

  1. //&cls&cscript -nologo -e:jscript "%~f0"&pause&exit
  2. function r(str, n){
  3.     var s='';
  4.     if(n<=str.length){
  5.         s=str.split('').sort(function(){return Math.random()-.5}).join('').substr(0,n);
  6.     }else{
  7.         for(var i=0;i<n;i++){
  8.             s+=str.charAt(Math.floor(Math.random()*(str.length)));
  9.         }
  10.     }
  11.     return s
  12. }
  13. var a='abcdefghijklmnopqrstuvwxyz';
  14. var b='0123456789';
  15. var c='!@#$%^&*()';
  16. for(var i=0;i<100;i++){
  17.    WSH.Echo(r(a, 3)+r(a, 3).toUpperCase()+r(b, 3)+r(c, 3));
  18. }
复制代码

TOP

本帖最后由 codegay 于 2016-11-15 12:31 编辑

python
模仿版主的来个一行流,不是lisp,但是比lisp括号多:
  1. from random import sample
  2. [''.join(map(chr,sample(range(97,123),3) + sample(range(65,91),3))) + ''.join(sample('0123456789',3) + sample('!@#$%^&*()',3)) for r in range(100)]
复制代码
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 8# pcl_test

非常感谢,完全符合了我的需求。

TOP

回复 6# pcl_test


  非常感谢,代码简短,符合我的需求

TOP

返回列表