2
我是這個領域的新手。我正在使用下面的代碼來掩蓋密碼。它工作正常,但有一個密碼,其中有0(e.x. Pass012)在它的問題。使用Win32 :: Console無法取得0作爲密碼輸入
只要我輸入0,此腳本正在退出。它根本沒有0作爲輸入。我試圖找出原因,似乎my $Data = $handle->InputChar(1))
無法讀取0,我不知道爲什麼。
任何人都可以請進入此代碼讓我知道這裏可能是什麼問題,以及如何我可以將0作爲密碼輸入?
#!/usr/bin/perl
use Win32::Console;
use strict; use warnings;
use Win32::Console;
run();
sub run {
my $StdIn = Win32::Console->new(STD_INPUT_HANDLE);
$StdIn->Mode(ENABLE_PROCESSED_INPUT);
my $Password = prompt_password($StdIn, "Enter Password: ", '*');
print "\n$Password";
return;
}
sub prompt_password {
my ($handle, $prompt, $mask) = @_;
my ($Password);
local $| = 1;
print $prompt;
$handle->Flush;
while (my $Data = $handle->InputChar(1)) {
last if "\r" eq $Data;
if ("\ch" eq $Data) {
if ("" ne chop($Password)) {
print "\ch \ch";
}
next;
}
$Password .= $Data;
print $mask;
}
return $Password;
}
非常感謝它對我有用。 – Rajarshi