<commit_before># <NAME>: Sign your hashes using md5

## Why

  * Traditional usage: You need to sign reqests to an api
  * Personal usage:  At AcademicWorks we allow bulk imports of data from external services via csv files.  Processing this data is expensive and often these imports include rows of data that we have seen before.  A row can be tranformaed into a hash by mapping headers to cells.   By saving the signature of these hashes we save ourselves a lot of unneeded computational cycles.

## Usage

  basic
  	hash = {"foo" => "bar", "test" => "toon"}
  	hash.sign
  	=> "2a9807b64b8068a8a2a665521ad9aeae"

  signing with shared secret
  	hash = {"foo" => "bar", "test" => "toon"}
  	hash.sign("ipsec")
  	=> "d7321e9c8f961deb9e114dd476e420a0"

  sign ignoring certain fields
  	hash = {"foo" => "bar", "test" => "toon"}
  	hash.sign("ipsec", ["test"])
  	=> "b2d1e2808552c9d421b2b6f617c71012"


## Contributing to john-hancock
 
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
  * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
  * Fork the project
  * Start a feature/bugfix branch<commit_msg>Edited README.markdown via GitHub<commit_after># <NAME>: Sign your hashes using md5

## Why

  * Traditional usage: You need to sign reqests to an api
  * Personal usage:  At AcademicWorks we allow bulk imports of data from external services via csv files.  Processing this data is expensive and often these imports include rows of data that we have seen before.  A row can be tranformaed into a hash by mapping headers to cells.   By saving the signature of these hashes we save ourselves a lot of unneeded computational cycles.

## Usage

  basic
  
    hash = {"foo" => "bar", "test" => "toon"}
    hash.sign
    => "2a9807b64b8068a8a2a665521ad9aeae"

  signing with shared secret
  
    hash = {"foo" => "bar", "test" => "toon"}
    hash.sign("ipsec")
    => "d7321e9c8f961deb9e114dd476e420a0"

  sign ignoring certain fields
  
    hash = {"foo" => "bar", "test" => "toon"}
    hash.sign("ipsec", ["test"])
    => "b2d1e2808552c9d421b2b6f617c71012"


## Contributing to john-hancock
 
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
  * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
  * Fork the project
  * Start a feature/bugfix branch
{'fraction_non_alphanumeric': 0.08655394524959742, 'fraction_numerical': 0.05152979066022544, 'mean_word_length': 3.769673704414587, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 23, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7610015', 'n_tokens_mistral': 871, 'n_tokens_neox': 772, 'n_words': 320}