Password Echo


#1

Anyone know of a way, aside from Ruby/Password, of suppressing echo
for a password prompt on a terminal? I’m interested in *nix
primarily.

Thanks,
Marc


#2

-----Original Message-----
From: Marc S. [mailto:removed_email_address@domain.invalid]
Sent: Tuesday, May 08, 2007 9:47 PM
To: ruby-talk ML
Subject: Password Echo

Anyone know of a way, aside from Ruby/Password, of
suppressing echo for a password prompt on a terminal? I’m
interested in *nix primarily.

curses comes to mind (Curses.noecho() would suppress the echoing of the
text)


#3

On Wed, May 09, 2007 at 11:46:35AM +0900, Marc S. wrote:

Anyone know of a way, aside from Ruby/Password, of suppressing echo
for a password prompt on a terminal? I’m interested in *nix
primarily.

HighLine can take care of this for you.

> cat password.rb
require "rubygems"
require "highline/import"

pass = ask("Enter your password:  ") { |q| q.echo = '*' }
puts "Your password is `#{pass}'!"

> ruby password.rb
Enter your password:  ********************************************
Your password is `This is how you do a password prompt in ruby'!

If you set q.echo = false then you will have nothing echoed on the
terminal.

If you want to roll your own on *nix boxes, you’ll need to become
familiar with stty(1).

enjoy,

-jeremy


#4

On May 9, 2007, at 4:46 AM, Marc S. wrote:

Anyone know of a way, aside from Ruby/Password, of suppressing echo
for a password prompt on a terminal? I’m interested in *nix
primarily.

It’s trivial with HighLine.

– fxn


#5

On 5/9/07, Xavier N. removed_email_address@domain.invalid wrote:

On May 9, 2007, at 4:46 AM, Marc S. wrote:

Anyone know of a way, aside from Ruby/Password, of suppressing echo
for a password prompt on a terminal? I’m interested in *nix
primarily.

It’s trivial with HighLine.

– fxn

Thanks all. I was hoping that there was a way I overlooked that
didn’t require any external dependencies. However, I ended up using
ruby-termios.

Marc


#6

On Wed, May 09, 2007 at 11:46:35AM +0900, Marc S. wrote:

Anyone know of a way, aside from Ruby/Password, of suppressing echo
for a password prompt on a terminal? I’m interested in *nix
primarily.

ruby-termios


#7

Thanks all. I was hoping that there was a way I overlooked that
didn’t require any external dependencies. However, I ended up using
ruby-termios.

Marc

Marc–I use:

 begin
   system "stty -echo"
   @password = gets.chomp
 ensure
   system "stty echo"
 end

It turns off terminal echoing, ensuring that the script can’t end before
turning echoing back on.

Dan


#8

From the command line?

stty -echo