[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

How to get an MD5 Base64 hash?

Sean Hussey

12/13/2005 4:54:00 PM

Hi everyone,

I'm trying to MD5 passwords for insertion into our LDAP. I can't seem
to get the right combination of Digest, BD5, and Base64 calls to get a
string that works.

Most passwords end up looking like this:

{MD5}qLdnu5zwk43H9AYD8zmH5Q==

I can manually tack on the {MD5}, of course. I've tried things along
these lines:

require 'digest/md5'
np = Digest::MD5.new
np << "hello"
require 'base64'

Base64.b64encode(np.to_s) # => NWQ0MTQwMmFiYzRiMmE3NmI5NzE5ZDkxMTAxN2M1OTI=

Base64.b64encode(np.hash.to_s) # => OTAzMjEy

# From http://rubyforge.org/snippet/detail.php?type=snippet...
h1=[].clear
16.times{ h1.push(np.hexdigest.to_s.slice!(0,2).hex) }
[h1.pack("C*")].pack("m") # => XV1dXV1dXV1dXV1dXV1dXQ==

None of the resulting strings works. What am I missing?

Thank you!

Sean


2 Answers

Bob Showalter

12/13/2005 5:08:00 PM

0

Sean Hussey wrote:
> Hi everyone,
>
> I'm trying to MD5 passwords for insertion into our LDAP. I can't seem
> to get the right combination of Digest, BD5, and Base64 calls to get a
> string that works.
>
> Most passwords end up looking like this:
>
> {MD5}qLdnu5zwk43H9AYD8zmH5Q==
>
> I can manually tack on the {MD5}, of course. I've tried things along
> these lines:
>
> require 'digest/md5'
> np = Digest::MD5.new
> np << "hello"
> require 'base64'
>
> Base64.b64encode(np.to_s) # => NWQ0MTQwMmFiYzRiMmE3NmI5NzE5ZDkxMTAxN2M1OTI=

try:

Base64.b64encode(np.digest)
=> "XUFAKrxLKna5cZ2REBfFkg==\n"

to_s gives you the digest as a string of hex digits.

Documentation definitely lacking in that module ;)


Sean Hussey

12/13/2005 5:43:00 PM

0

That's it! Thank you so much!

Agreed on the docs. I was hoping to even find someone else
documenting it elsewhere (blog, FAQ, etc), but no dice.

Thanks again!

Sean

On 12/13/05, Bob Showalter <bob_showalter@taylorwhite.com> wrote:
>
> try:
>
> Base64.b64encode(np.digest)
> => "XUFAKrxLKna5cZ2REBfFkg==\n"
>
> to_s gives you the digest as a string of hex digits.
>
> Documentation definitely lacking in that module ;)
>
>