最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Need Sha1 encryption in jqueryjavascript - Stack Overflow

programmeradmin3浏览0评论

I have sha1 encryption coding in php

<?php
echo hash('sha1', 'testing'.'abcdb');
?>

but, my requirement should have to run the page xyz.html, so the above block is not working.

So, I need to do sha1 encryption in jquery/javascript. Help me by providing coding for sha1 encryption.

this is exactly have to be converted to scripts

'<?php echo hash('sha1', 'my-secret-key' . $_REQUEST["email"]); ?>'

I have sha1 encryption coding in php

<?php
echo hash('sha1', 'testing'.'abcdb');
?>

but, my requirement should have to run the page xyz.html, so the above block is not working.

So, I need to do sha1 encryption in jquery/javascript. Help me by providing coding for sha1 encryption.

this is exactly have to be converted to scripts

'<?php echo hash('sha1', 'my-secret-key' . $_REQUEST["email"]); ?>'
Share Improve this question edited Jun 26, 2018 at 9:44 Cœur 38.7k26 gold badges203 silver badges277 bronze badges asked Mar 17, 2015 at 12:38 itsmeitsme 1353 gold badges5 silver badges15 bronze badges 4
  • 3 sha1 isn't an ecryption. Better think of it as a lossy pression. – enthus1ast Commented Mar 17, 2015 at 12:40
  • its not working, i have to convert "'<?php echo hash('sha1', 'my-secret-key' . $_REQUEST["email"]); ?>'" to scripts – itsme Commented Mar 17, 2015 at 12:59
  • 1 @itsme You do realize that your key won't be secret if you have it in javascript, right? What isn't working? What do you get? What do you expect? Do you get an error? A wrong value? – h2ooooooo Commented Mar 17, 2015 at 13:07
  • 1 If you're encrypting someone on the client side, you're doing it wrongly. The client should not receive the encryption key at the first place. The best way is to place an AJAX call to the server, which receives the content (i.e. the email address), and returns the hashed/encrypted content. – Terry Commented Mar 17, 2015 at 13:08
Add a ment  | 

2 Answers 2

Reset to default 8

Just google it and found: http://phpjs/functions/sha1/

function sha1(str) {
  //  discuss at: http://phpjs/functions/sha1/
  // original by: Webtoolkit.info (http://www.webtoolkit.info/)
  // improved by: Michael White (http://getsprink.)
  // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld)
  //    input by: Brett Zamir (http://brett-zamir.me)
  //  depends on: utf8_encode
  //   example 1: sha1('Kevin van Zonneveld');
  //   returns 1: '54916d2e62f65b3afa6e192e6a601cdbe5cb5897'

  var rotate_left = function(n, s) {
    var t4 = (n << s) | (n >>> (32 - s));
    return t4;
  };

  /*var lsb_hex = function (val) { // Not in use; needed?
    var str="";
    var i;
    var vh;
    var vl;

    for ( i=0; i<=6; i+=2 ) {
      vh = (val>>>(i*4+4))&0x0f;
      vl = (val>>>(i*4))&0x0f;
      str += vh.toString(16) + vl.toString(16);
    }
    return str;
  };*/

  var cvt_hex = function(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;

  str = this.utf8_encode(str);
  var str_len = str.length;

  var word_array = [];
  for (i = 0; i < str_len - 3; i += 4) {
    j = str.charCodeAt(i) << 24 | str.charCodeAt(i + 1) << 16 | str.charCodeAt(i + 2) << 8 | str.charCodeAt(i + 3);
    word_array.push(j);
  }

  switch (str_len % 4) {
    case 0:
      i = 0x080000000;
      break;
    case 1:
      i = str.charCodeAt(str_len - 1) << 24 | 0x0800000;
      break;
    case 2:
      i = str.charCodeAt(str_len - 2) << 24 | str.charCodeAt(str_len - 1) << 16 | 0x08000;
      break;
    case 3:
      i = str.charCodeAt(str_len - 3) << 24 | str.charCodeAt(str_len - 2) << 16 | str.charCodeAt(str_len - 1) <<
        8 | 0x80;
      break;
  }

  word_array.push(i);

  while ((word_array.length % 16) != 14) {
    word_array.push(0);
  }

  word_array.push(str_len >>> 29);
  word_array.push((str_len << 3) & 0x0ffffffff);

  for (blockstart = 0; blockstart < word_array.length; blockstart += 16) {
    for (i = 0; i < 16; i++) {
      W[i] = word_array[blockstart + i];
    }
    for (i = 16; i <= 79; i++) {
      W[i] = rotate_left(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 = (rotate_left(A, 5) + ((B & C) | (~B & D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;
      E = D;
      D = C;
      C = rotate_left(B, 30);
      B = A;
      A = temp;
    }

    for (i = 20; i <= 39; i++) {
      temp = (rotate_left(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;
      E = D;
      D = C;
      C = rotate_left(B, 30);
      B = A;
      A = temp;
    }

    for (i = 40; i <= 59; i++) {
      temp = (rotate_left(A, 5) + ((B & C) | (B & D) | (C & D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;
      E = D;
      D = C;
      C = rotate_left(B, 30);
      B = A;
      A = temp;
    }

    for (i = 60; i <= 79; i++) {
      temp = (rotate_left(A, 5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;
      E = D;
      D = C;
      C = rotate_left(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 = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);
  return temp.toLowerCase();
}

call

sha1('testing'+'abcdb');

There are two ways to go about this, you can either use AJAX to call up your PHP page and retrieve the SHA-1.

Or, you could use one of the JS libraries, such as CryptoJS.

发布评论

评论列表(0)

  1. 暂无评论