htpasswd snippets

Generate a 56-bit DES encrypted (htpasswd) password with Ruby

Tagged apache, ruby, irb, htpasswd, nginx  Languages css

Run the following in an irb console to generate a 56-bit DES encrypted password:

"password".crypt("salt")

The password can be used in an Apache or Nginx htpasswd file to enable basic authentication.

The generated password can also be used in other Unix password files.

Password protecting a folder/resource with Nginx

Tagged ruby, perl, nginx, htpasswd, auth_basic  Languages bash

First add the following to your Nginx configuration file:

location / {
  auth_basic            "Restricted";
  auth_basic_user_file  /etc/nginx/htpasswd;
}

Then create the htpasswd file:

# this be passwords
thisbetheusername:thisbeencryptedpass:yercomment

To generate a htpasswd password without installing Apache you can use the following Perl or Ruby code:

Perl

perl -le 'print crypt("password", "salt")'

Ruby (run in irb)

"password".crypt("salt")

The crypt() method uses 56-bit DES encryption, which is used in /etc/passwd and htpasswd.