日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

perl社工密码字典生成器

發(fā)布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 perl社工密码字典生成器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#!/usr/bin/perl -w use Math::Combinatorics qw(permute); #引入排列模塊if (@ARGV == 0){die "錯誤:No parameter!Enter \"?\" for help.\n"; } #若無參數(shù),提示錯誤并退出if (@ARGV == 1){if ($ARGV[0] eq '?'){&help;}else{die "Error:At least 2 parameter!\n"} } #若只有一個參數(shù),判斷是否為“?”。若是則調(diào)用help函數(shù),否則提示錯誤并退出my @parameter_array = @ARGV; die "Error:Missing \"-o\" parameter!\n" unless(grep(/^-o$/,@parameter_array)); #若參數(shù)中沒有“-o”,提示錯誤并退出 my @words_array; my @numbers_array; my $filename;while(@parameter_array){ #處理每一個參數(shù)my $parameter = shift @parameter_array;if($parameter eq '-w'){my $para = shift @parameter_array;&checkword($para);push @words_array,$para;#將“-w”后的字符串加入數(shù)組@words_array中}elsif($parameter eq '-d'){my $para = shift @parameter_array;&checknum($para);push @numbers_array,$para;#將“-d”后的數(shù)字加入到數(shù)組@numbers_array中}elsif($parameter eq '-o'){my $para = shift @parameter_array;$filename = $para;#將“-o”后的文件名賦值給$filename變量}else{die "Error:Parameter near \"$parameter\"\n";#若有其他類型的參數(shù)或者格式不正確則提示錯誤并退出} }my @everyword_listarray_ref_array; foreach(@words_array){ #將每一個字符串參數(shù)生成全部大小寫數(shù)組,并將該數(shù)組的引用存放在數(shù)組@everyword_listarray_ref_array中my $all_case_array_ref = &creat_all_case($_);push(@everyword_listarray_ref_array,$all_case_array_ref); } foreach(@numbers_array){ #將每一個數(shù)字參數(shù)放在單獨的數(shù)組中,并將該數(shù)組的引用存放在數(shù)組@everyword_listarray_ref_array中my @number_array = ($_);my $number_array_ref = \@number_array;push(@everyword_listarray_ref_array,$number_array_ref); }open(PASSLIST,">$filename"); foreach(permute(@everyword_listarray_ref_array)){ #permute返回的是所有排列的數(shù)組的引用的數(shù)組array_permu(@$_);#對每一種數(shù)組排列調(diào)用函數(shù) } close PASSLIST;sub array_permu{ #用來實現(xiàn)數(shù)組間的組合my $aa = shift @_;foreach(@$aa){push(@arr,$_);array_permu(@_) if @_;unless(@_){print PASSLIST join('',@arr).$/;}pop @arr;}} sub creat_all_case{ #生成所有大小寫的數(shù)組,返回該數(shù)組的引用my $word = shift @_;my @all_case_array;while($word){push(@all_case_array,$word);$word = &add1($word);}my $all_case_array_ref = \@all_case_array;return $all_case_array_ref; }sub add1{ #實現(xiàn)字母+1my ($words) = (@_);if($words =~ /^[A-Z]+$/){return 0}my @words_array = split('',$words);my $jinwei = 1;foreach (@words_array){if($jinwei == 1) {if($_ =~ /^[a-z]$/){$_ = uc $_;$jinwei = 0;}elsif($_ =~ /^[A-Z]$/){$_ = lc $_;$jinwei = 1;}}}$words = join('',@words_array);return $words; }sub checkword{ #檢查是否有其他字符my $word = shift @_;if ($word =~ /[^a-z]/){die "Error:Incorrect format near \"$word\"\n";} }sub checknum{ #檢查是否有其他字符my $num = shift @_;if ($num =~ /[^0-9]/){die "Error:Incorrect format near \"$num\"\n";} } sub help{system "clear";print qq(Social Engineering Password Dictionary Builder(V1.0) - by adidalaUsage: ./creatdict [? | -w xxx | -d xxx] -o xxxParameter?: To show this page-w: A word,it will generate all combinations of case(Optional Repeatable)-d: A number(Optional Repeatable)-o: Output file of password dictionary(Essential)Example:./creatdict -w a -w b -d 1 -o pass1.txtthen will generate a file named pass1.txt and contains:ab1aB1Ab1AB1a1ba1BA1bA1Bba1bA1Ba1BA1b1ab1AB1aB1A1ab1aB1Ab1AB1ba1bA1Ba1BA);exit; }

總結(jié)

以上是生活随笔為你收集整理的perl社工密码字典生成器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。