Skip to content

md5/md5crypt functions. UTF8 compatible. Small. Fast. 100% tests coverage. No dependencies.

License

Notifications You must be signed in to change notification settings

Holixus/nano-md5

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gitter NPM version Build status Test coverage Dependency Status License Downloads

nano-md5

md5/md5crypt functions. UTF8 compatible. Small. Fast. 100% tests coverage. No dependencies.

Example

> var md5 = require('nano-md5');
> md5('hello');
'5d41402abc4b2a76b9719d911017c592'
> md5.fromBytes('hello').toHex()
'5d41402abc4b2a76b9719d911017c592'
> md5.fromUtf8('hello').toHex()
'5d41402abc4b2a76b9719d911017c592'

API

md5(utf8_string)

  • utf8_string String

Returns hexadecimal value of utf8_string MD5 hash. The function is a shortcut for md5.fromUtf8(utf8_string).toHex() call.

> var md5 = require('nano-md5');
> md5('hello');
'5d41402abc4b2a76b9719d911017c592'

md5.fromBytes(bytes_string)

  • bytes_string String -- supports only 8-bits characters

Returns binary String object of MD5 hash containings of toHex() method for converting binary value to hexadecimal string value.

> var md5 = require('nano-md5');
> md5.fromBytes('hello');
{ [String: ']A@*¼K*v¹qÂÂ\u0010\u0017Ã…Â'] toHex: [Function] }
> md5.fromBytes('hello').toHex()
'5d41402abc4b2a76b9719d911017c592'

md5.fromUtf8(utf8_string)

  • utf8_string String

Returns binary String object of MD5 hash containings of toHex() method for converting binary value to hexadecimal string value.

> var md5 = require('nano-md5');
> md5.fromUtf8('ру��кий');
{ [String: '4·® \u0000>\u001eU\u001bÃ�M¡a'] toHex: [Function] }
> md5.fromUtf8('ру��кий').toHex()
'3495b78aaea0003e1e551bcf4da18861'

md5.crypt(password, setting)

  • password String
  • setting String - salt or '$1$'+salt; can be closed with '$' symbol

The function is analogue of md5crypt unix libc function. Very useful for passwords crypting and checking.

The setting argument isn`t necessary. If it skipped a salt value will generated automatically.

> var md5 = require('nano-md5');
> md5.crypt('hello')
'$1$DgPzWoiS$bMN29fSiiniXY6s.4ShyE1'
> md5.crypt('hello')
'$1$nFQVmGdu$m0QpoNNUJ6Ij8ZWh0wavS0'
> md5.crypt('hello')
'$1$FmEgm6OI$rvKvF85/aj2n8/64VEytt/'
> md5.crypt('hello', '01234567')
'$1$01234567$8imesxsCtZWLDOPevHEvu.'
> md5.crypt('hello', '01234567')
'$1$01234567$8imesxsCtZWLDOPevHEvu.'
> md5.crypt('hello', '$1$01234567')
'$1$01234567$8imesxsCtZWLDOPevHEvu.'
> md5.crypt('hello', md5.crypt('hello', '$1$01234567')) // crypted password can be used as salt source
'$1$01234567$8imesxsCtZWLDOPevHEvu.'

About

md5/md5crypt functions. UTF8 compatible. Small. Fast. 100% tests coverage. No dependencies.

Topics

Resources

License

Stars

Watchers

Forks

Packages