Perl代码,定义参数
我有一个perl代码,但无论何时运行它,我似乎都不知道如何定义第一个和第二个参数。下面是代码,非常感谢您的帮助Perl代码,定义参数,perl,arguments,Perl,Arguments,我有一个perl代码,但无论何时运行它,我似乎都不知道如何定义第一个和第二个参数。下面是代码,非常感谢您的帮助 #!/usr/bin/env perl use Crypt::PBKDF2; if (@ARGV < 2) { print "[!] Error: please specify hash (first argument) and salt (second argument)\n"; exit (1); } my $match = pack ("H*", $ARGV[0
#!/usr/bin/env perl
use Crypt::PBKDF2;
if (@ARGV < 2) {
print "[!] Error: please specify hash (first argument) and salt (second argument)\n";
exit (1);
}
my $match = pack ("H*", $ARGV[0]); # TODO: check if it is of length 40
my $salt = pack ("H*", $ARGV[1]); # of length 8?
my $iter = 1000;
my $pbkdf2 = Crypt::PBKDF2->new (hash_class => 'HMACSHA1', iterations => $iter);
my $num;
for ($num = 0; $num < 10000; $num++) {
my $pass = sprintf ("%04d", $num);
my $hash = $pbkdf2->PBKDF2 ($salt, $pass);
if ($match eq $hash) {
printf ("%s:%s:%s:%s\n", unpack ("H*", $hash), unpack ("H*", $salt), $iter, $pass);
exit (0);
}
}
exit (1);
#/usr/bin/env perl
使用Crypt::PBKDF2;
如果(@ARGV<2){
打印“[!]错误:请指定哈希(第一个参数)和salt(第二个参数)\n”;
出口(1);
}
我的$match=pack(“H*,$ARGV[0])#TODO:检查长度是否为40
我的$salt=pack(“H*”,$ARGV[1])#长度为8?
我的$iter=1000;
我的$pbkdf2=Crypt::pbkdf2->new(hash_类=>'HMACSHA1',迭代=>$iter);
我的$num;
对于($num=0;$num<10000;$num++){
我的$pass=sprintf(“%04d”,$num);
my$hash=$pbkdf2->pbkdf2($salt,$pass);
if($match eq$hash){
printf(“%s:%s:%s:%s\n”,解包(“H*”,$hash),解包(“H*”,$salt),$iter,$pass);
出口(0);
}
}
出口(1);
如果您引用这两个参数
my $match = pack ("H*", $ARGV[0]); # TODO: check if it is of length 40
my $salt = pack ("H*", $ARGV[1]); # of length 8?
它们在命令行中定义
假设脚本文件是script.pl
在命令行中,您需要运行
perl script.pl <match> <salt>
perlscript.pl
@ARGV是包含Perl中的命令行参数的数组,所有Perl的特殊变量都在中定义,如下所示 @ARGV 数组@ARGV包含用于脚本的命令行参数
如果你对如何更清楚地表达这一点有什么建议,我很想听听:-)“定义论点”没有任何意义。您是否询问如何提供/指定参数<代码>脚本8267549af37a。。。384a6dd8f900…我的意思是,我知道第一个和第二个参数要使用什么数字。我只是不知道怎么把它们放进去。谢谢你的帮助。@NinjaBanana定义了什么的论点?