diff options
Diffstat (limited to 'node_modules/locutus/php/strings/sha1.js')
-rw-r--r-- | node_modules/locutus/php/strings/sha1.js | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/node_modules/locutus/php/strings/sha1.js b/node_modules/locutus/php/strings/sha1.js deleted file mode 100644 index 596b724..0000000 --- a/node_modules/locutus/php/strings/sha1.js +++ /dev/null @@ -1,151 +0,0 @@ -'use strict'; - -module.exports = function sha1(str) { - // discuss at: http://locutus.io/php/sha1/ - // original by: Webtoolkit.info (http://www.webtoolkit.info/) - // improved by: Michael White (http://getsprink.com) - // improved by: Kevin van Zonneveld (http://kvz.io) - // input by: Brett Zamir (http://brett-zamir.me) - // note 1: Keep in mind that in accordance with PHP, the whole string is buffered and then - // note 1: hashed. If available, we'd recommend using Node's native crypto modules directly - // note 1: in a steaming fashion for faster and more efficient hashing - // example 1: sha1('Kevin van Zonneveld') - // returns 1: '54916d2e62f65b3afa6e192e6a601cdbe5cb5897' - - var hash; - try { - var crypto = require('crypto'); - var sha1sum = crypto.createHash('sha1'); - sha1sum.update(str); - hash = sha1sum.digest('hex'); - } catch (e) { - hash = undefined; - } - - if (hash !== undefined) { - return hash; - } - - var _rotLeft = function _rotLeft(n, s) { - var t4 = n << s | n >>> 32 - s; - return t4; - }; - - var _cvtHex = function _cvtHex(val) { - var str = ''; - var i; - var v; - - for (i = 7; i >= 0; i--) { - v = val >>> i * 4 & 0x0f; - str += v.toString(16); - } - return str; - }; - - var blockstart; - var i, j; - var W = new Array(80); - var H0 = 0x67452301; - var H1 = 0xEFCDAB89; - var H2 = 0x98BADCFE; - var H3 = 0x10325476; - var H4 = 0xC3D2E1F0; - var A, B, C, D, E; - var temp; - - // utf8_encode - str = unescape(encodeURIComponent(str)); - var strLen = str.length; - - var wordArray = []; - for (i = 0; i < strLen - 3; i += 4) { - j = str.charCodeAt(i) << 24 | str.charCodeAt(i + 1) << 16 | str.charCodeAt(i + 2) << 8 | str.charCodeAt(i + 3); - wordArray.push(j); - } - - switch (strLen % 4) { - case 0: - i = 0x080000000; - break; - case 1: - i = str.charCodeAt(strLen - 1) << 24 | 0x0800000; - break; - case 2: - i = str.charCodeAt(strLen - 2) << 24 | str.charCodeAt(strLen - 1) << 16 | 0x08000; - break; - case 3: - i = str.charCodeAt(strLen - 3) << 24 | str.charCodeAt(strLen - 2) << 16 | str.charCodeAt(strLen - 1) << 8 | 0x80; - break; - } - - wordArray.push(i); - - while (wordArray.length % 16 !== 14) { - wordArray.push(0); - } - - wordArray.push(strLen >>> 29); - wordArray.push(strLen << 3 & 0x0ffffffff); - - for (blockstart = 0; blockstart < wordArray.length; blockstart += 16) { - for (i = 0; i < 16; i++) { - W[i] = wordArray[blockstart + i]; - } - for (i = 16; i <= 79; i++) { - W[i] = _rotLeft(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1); - } - - A = H0; - B = H1; - C = H2; - D = H3; - E = H4; - - for (i = 0; i <= 19; i++) { - temp = _rotLeft(A, 5) + (B & C | ~B & D) + E + W[i] + 0x5A827999 & 0x0ffffffff; - E = D; - D = C; - C = _rotLeft(B, 30); - B = A; - A = temp; - } - - for (i = 20; i <= 39; i++) { - temp = _rotLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1 & 0x0ffffffff; - E = D; - D = C; - C = _rotLeft(B, 30); - B = A; - A = temp; - } - - for (i = 40; i <= 59; i++) { - temp = _rotLeft(A, 5) + (B & C | B & D | C & D) + E + W[i] + 0x8F1BBCDC & 0x0ffffffff; - E = D; - D = C; - C = _rotLeft(B, 30); - B = A; - A = temp; - } - - for (i = 60; i <= 79; i++) { - temp = _rotLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6 & 0x0ffffffff; - E = D; - D = C; - C = _rotLeft(B, 30); - B = A; - A = temp; - } - - H0 = H0 + A & 0x0ffffffff; - H1 = H1 + B & 0x0ffffffff; - H2 = H2 + C & 0x0ffffffff; - H3 = H3 + D & 0x0ffffffff; - H4 = H4 + E & 0x0ffffffff; - } - - temp = _cvtHex(H0) + _cvtHex(H1) + _cvtHex(H2) + _cvtHex(H3) + _cvtHex(H4); - return temp.toLowerCase(); -}; -//# sourceMappingURL=sha1.js.map
\ No newline at end of file |