JSFiddle - React, Tailwind, and code Playground

hashCode

by Hugo Carneiro

HTML

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container-fluid">
  <div class="row">
    <div class="col-xs-12">
      <form id="encryptForm">
        <div class="form-group">
          <label for="exampleInputEmail1">Passwords to encrypt</label>
          <p class="help-block"><em>Enter one password per line</em></p>
          <textarea class="form-control" rows="10" name="passwords" id="passwords"></textarea>
        </div>
        <button type="submit" class="btn btn-primary">Encrypt passwords</button>
      </form>
      <div id="encrypted">
        <h4>Encrypted passwords</h4>
        <pre id="debug"></pre>
      </div>
    </div>
  </div>
</div>

CSS

#encrypted {
  display: none;
}

JavaScript

String.prototype.hashCode = function() {
  var hash = 0,
    i, chr;
  if (this.length === 0) return hash;
  for (i = 0; i < this.length; i++) {
    chr = this.charCodeAt(i);
    hash = ((hash << 5) - hash) + chr;
    hash |= 0; // Convert to 32bit integer
  }
  return hash;
};

$('#encryptForm').on('submit', function(event){
	event.preventDefault();
	var passwords = $('#passwords').val().split(/\n/);
  if (!passwords.length) {
    return;
  }
  var encryptedPasswords = passwords.map(function(p){
  	return p.hashCode();
  }).join('\n');
  $('#debug').html(encryptedPasswords);
  $('#encrypted').show();
});