Advertisement
Guest User

jsSha vs crypto testcase

a guest
Dec 28th, 2013
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var JsSHA = require('../src/sha');
  2. var crypto = require('crypto');
  3.  
  4. /**
  5.  * Convert hex string to binary string
  6.  * @see {@link http://stackoverflow.com/a/7695514">http://stackoverflow.com/a/7695514}
  7.  * @param {String} hex
  8.  * @returns {String}
  9.  */
  10. function hex2bin(hex){
  11.     var bin = '',
  12.         bytes = [],
  13.         str,
  14.         i;
  15.  
  16.     for(i = 0; i< hex.length-1; i += 2){
  17.         bytes.push(parseInt(hex.substr(i, 2), 16));
  18.     }
  19.     str = String.fromCharCode.apply(String, bytes);
  20.     if(str.length){
  21.         bin = str;
  22.     }
  23.     return bin;
  24. }
  25.  
  26. exports.jsShaFingerprint = function(test){
  27.  
  28.     var bin = hex2bin('E0113C18726D3AD74D6081C43D2539CA9A0A8745'),
  29.         fingerBin = new JsSHA(bin, 'TEXT'),
  30.         hashed = fingerBin.getHash('SHA-1', 'HEX');
  31.  
  32.     test.strictEqual(hashed.toUpperCase(), 'B153C0D8C766A64F677A3D1797E680D18EC571DD', 'generated hash equals expected hash');
  33.     test.done();
  34. };
  35.  
  36. exports.cryptoFingerprint = function(test){
  37.     var sha1 = crypto.createHash('sha1');
  38.  
  39.     var bin = hex2bin('E0113C18726D3AD74D6081C43D2539CA9A0A8745'),
  40.         fingerBin = sha1.update(bin),
  41.         hashed = fingerBin.digest('hex');
  42.  
  43.     test.strictEqual(hashed.toUpperCase(), 'B153C0D8C766A64F677A3D1797E680D18EC571DD', 'generated hash equals expected hash');
  44.     test.done();
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement