返回列表 发帖

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

本帖最后由 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,
这并不是个难题
#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)
    COPY
输出:
mnTNC376!&$
qyiOMQ629!$&
sjbRYN957!&(
jcaFZI168)@(
ygwSPO350%($
hirKAN986&@^
sgmAJI486!($
hydKBN641^$)
rowHTL435@$)
qxsMXT845%@&
mlvSWQ820^#@
uwsXVI094^!(
ketGFV216)!#
yebYQS320^($
xmiGUS564*#!
kinDGK819)@#
pyiGYF856#*%
jbcIXM593!&*COPY
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 4# codegay


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

TOP

本帖最后由 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 ''}"
pauseCOPY

TOP

回复 3# Batcher


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

TOP

//&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));
}COPY

TOP

本帖最后由 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)]COPY
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 8# pcl_test

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

TOP

回复 6# pcl_test


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

TOP

返回列表