
标题: [文本处理] 如何用批处理生成多个固定长度由大小写字母数字指定符号组成的密码字符串 [打印本页]
作者: snowwolf 时间: 2016-11-14 16:17 标题: 如何用批处理生成多个固定长度由大小写字母数字指定符号组成的密码字符串
本帖最后由 pcl_test 于 2016-11-15 07:41 编辑
我要生成长度为12的密码,取自S1=[a-z] S2=[A-Z] S3=[0-9] S4=[!@#$%^&*()]
S1-S4每个里边随机取3个值 生成最后的密码,一次生成100个 怎么弄
作者: snowwolf 时间: 2016-11-14 16:18
例如abcABC123!@#
作者: Batcher 时间: 2016-11-14 18:01
试试这个
http://bbs.bathome.net/thread-11883-1-1.html#pid75468
作者: codegay 时间: 2016-11-15 05:43
本帖最后由 codegay 于 2016-11-15 05:45 编辑
我复习一下python,
这并不是个难题- #2016年11月15日5:30:21 codegay
- #生成随机密码
-
- from random import sample
-
- az = 'abcdefghijklmnopqrstuvwxyz'
- AZ = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
- digits = '0123456789'
- punctuation = '!@#$%^&*()'
-
- for r in range(100):
- s1 = sample(az,3)
- s2 = sample(AZ,3)
- s3 = sample(digits,3)
- s4 = sample(punctuation,3)
- password = ''.join(s1+s2+s3+s4)
- print(password)
-
复制代码
输出:- mnTNC376!&$
- qyiOMQ629!$&
- sjbRYN957!&(
- jcaFZI168)@(
- ygwSPO350%($
- hirKAN986&@^
- sgmAJI486!($
- hydKBN641^$)
- rowHTL435@$)
- qxsMXT845%@&
- mlvSWQ820^#@
- uwsXVI094^!(
- ketGFV216)!#
- yebYQS320^($
- xmiGUS564*#!
- kinDGK819)@#
- pyiGYF856#*%
- jbcIXM593!&*
复制代码
作者: snowwolf 时间: 2016-11-15 10:21
回复 4# codegay
我不会python,但是很感谢,看python这些代码貌似很好理解
作者: pcl_test 时间: 2016-11-15 10:30
本帖最后由 pcl_test 于 2016-11-15 11:58 编辑
- @echo off
- rem win7及以上系统运行
- set "char=!@#$%%^&*()"
- 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 ''}"
- pause
复制代码
作者: snowwolf 时间: 2016-11-15 10:35
回复 3# Batcher
恩,这个确实很强大,考虑的也比较全
作者: pcl_test 时间: 2016-11-15 11:52
- //&cls&cscript -nologo -e:jscript "%~f0"&pause&exit
-
- function r(str, n){
- var s='';
- if(n<=str.length){
- s=str.split('').sort(function(){return Math.random()-.5}).join('').substr(0,n);
- }else{
- for(var i=0;i<n;i++){
- s+=str.charAt(Math.floor(Math.random()*(str.length)));
- }
- }
- return s
- }
-
- var a='abcdefghijklmnopqrstuvwxyz';
- var b='0123456789';
- var c='!@#$%^&*()';
- for(var i=0;i<100;i++){
- WSH.Echo(r(a, 3)+r(a, 3).toUpperCase()+r(b, 3)+r(c, 3));
- }
复制代码
作者: codegay 时间: 2016-11-15 12:29
本帖最后由 codegay 于 2016-11-15 12:31 编辑
python
模仿版主的来个一行流,不是lisp,但是比lisp括号多:- from random import sample
- [''.join(map(chr,sample(range(97,123),3) + sample(range(65,91),3))) + ''.join(sample('0123456789',3) + sample('!@#$%^&*()',3)) for r in range(100)]
复制代码
作者: snowwolf 时间: 2016-11-15 17:53
回复 8# pcl_test
非常感谢,完全符合了我的需求。
作者: snowwolf 时间: 2016-11-15 17:55
回复 6# pcl_test
非常感谢,代码简短,符合我的需求
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |