# Password Echo

**URL:** <https://www.ruby-forum.com/t/password-echo/103672>\
**Category:** Ruby\
**Created:** [May 9, 2007, 4:47am UTC](https://www.ruby-forum.com/t/password-echo/103672 "2007-05-09T04:47:28Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![mschipperheyn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4491bb/32.png) [@mschipperheyn](https://www.ruby-forum.com/u/mschipperheyn)\
**Post date:** [May 9, 2007, 4:47am UTC](https://www.ruby-forum.com/t/password-echo/103672/1 "2007-05-09T04:47:28Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![mschipperheyn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4491bb/32.png) [@mschipperheyn](https://www.ruby-forum.com/u/mschipperheyn)\
**Post date:** [May 9, 2007, 6:49am UTC](https://www.ruby-forum.com/t/password-echo/103672/2 "2007-05-09T06:49:33Z")

</div>

> -----Original Message-----  
> From: Marc S. [[mailto:removed\_email\_address@domain.invalid](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)

---

<div class="post-metadata">

**Author:** ![mschipperheyn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4491bb/32.png) [@mschipperheyn](https://www.ruby-forum.com/u/mschipperheyn)\
**Post date:** [May 9, 2007, 6:57am UTC](https://www.ruby-forum.com/t/password-echo/103672/3 "2007-05-09T06:57:34Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![mschipperheyn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4491bb/32.png) [@mschipperheyn](https://www.ruby-forum.com/u/mschipperheyn)\
**Post date:** [May 9, 2007, 1:23pm UTC](https://www.ruby-forum.com/t/password-echo/103672/4 "2007-05-09T13:23:18Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![mschipperheyn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4491bb/32.png) [@mschipperheyn](https://www.ruby-forum.com/u/mschipperheyn)\
**Post date:** [May 9, 2007, 2:50pm UTC](https://www.ruby-forum.com/t/password-echo/103672/5 "2007-05-09T14:50:30Z")

</div>

On 5/9/07, Xavier N. [removed\_email\_address@domain.invalid](mailto: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

---

<div class="post-metadata">

**Author:** ![mschipperheyn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4491bb/32.png) [@mschipperheyn](https://www.ruby-forum.com/u/mschipperheyn)\
**Post date:** [May 9, 2007, 1:10pm UTC](https://www.ruby-forum.com/t/password-echo/103672/6 "2007-05-09T13:10:17Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![mschipperheyn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4491bb/32.png) [@mschipperheyn](https://www.ruby-forum.com/u/mschipperheyn)\
**Post date:** [May 10, 2007, 9:03am UTC](https://www.ruby-forum.com/t/password-echo/103672/7 "2007-05-10T09:03:33Z")

</div>

> 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

---

<div class="post-metadata">

**Author:** ![mschipperheyn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/4491bb/32.png) [@mschipperheyn](https://www.ruby-forum.com/u/mschipperheyn)\
**Post date:** [May 10, 2007, 1:42am UTC](https://www.ruby-forum.com/t/password-echo/103672/8 "2007-05-10T01:42:10Z")

</div>

From the command line?

stty -echo
