源码论坛公告:本站是一个交流学习建站资源的社区论坛,旨在交流学习源码脚本等资源技术,欢迎大家投稿发言! 【点击此处将锦尚放在桌面

源码论坛,商业源码下载,尽在锦尚中国商业源码论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

查看: 1264|回复: 3
打印 上一主题 下一主题

[求救]有SHA1算法,求解SHA1值?

[复制链接]

20

主题

557

帖子

8

金币

初级会员

Rank: 1

积分
531
跳转到指定楼层
1#
发表于 2010-1-30 00:38:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
算法:
var hex_chr = "0123456789abcdef";function hex(num){  var str = "";  for(var j = 7; j >= 0; j--)    str += hex_chr.charAt((num >> (j * 4)) & 0x0F);  return str;}/* * Convert a string to a sequence of 16-word blocks, stored as an array. * Append padding bits and the length, as described in the SHA1 standard. */function str2blks_SHA1(str){  var nblk = ((str.length + 8) >> 6) + 1;  var blks = new Array(nblk * 16);  for(var i = 0; i < nblk * 16; i++) blks = 0;  for(var i = 0; i < str.length; i++)    blks[i >> 2] |= str.charCodeAt(i) << (24 - (i % 4) * 8);  blks[i >> 2] |= 0x80 << (24 - (i % 4) * 8);  blks[nblk * 16 - 1] = str.length * 8;  return blks;}/* * Add integers, wrapping at 2^32. This uses 16-bit operations internally * to work around bugs in some JS interpreters. */function safe_add(x, y){  var lsw = (x & 0xFFFF) + (y & 0xFFFF);  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);  return (msw << 16) | (lsw & 0xFFFF);}/* * Bitwise rotate a 32-bit number to the left */function rol(num, cnt){  return (num << cnt) | (num >>> (32 - cnt));}/* * Perform the appropriate triplet combination function for the current * iteration */function ft(t, b, c, d){  if(t < 20) return (b & c) | ((~b) & d);  if(t < 40) return b ^ c ^ d;  if(t < 60) return (b & c) | (b & d) | (c & d);  return b ^ c ^ d;}/* * Determine the appropriate additive constant for the current iteration */function kt(t){  return (t < 20) ?  1518500249 : (t < 40) ?  1859775393 :         (t < 60) ? -1894007588 : -899497514;}/* * Take a string and return the hex representation of its SHA-1. */function calcSHA1(str){  var x = str2blks_SHA1(str);  var w = new Array(80);  var a =  1732584193;  var b = -271733879;  var c = -1732584194;  var d =  271733878;  var e = -1009589776;  for(var i = 0; i < x.length; i += 16)  {    var olda = a;    var oldb = b;    var oldc = c;    var oldd = d;    var olde = e;    for(var j = 0; j < 80; j++)    {      if(j < 16) w[j] = x[i + j];      else w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);      var t = safe_add(safe_add(rol(a, 5), ft(j, b, c, d)), safe_add(safe_add(e, w[j]), kt(j)));      e = d;      d = c;      c = rol(b, 30);      b = a;      a = t;    }    a = safe_add(a, olda);    b = safe_add(b, oldb);    c = safe_add(c, oldc);    d = safe_add(d, oldd);    e = safe_add(e, olde);  }  return hex(a) + hex(b) + hex(c) + hex(d) + hex(e);}

求:508599155F26CE6E1B12ED7D7C286D6D9CDF787C和01B307ACBA4F54F55AAFC33BB06BBBF6CA803E9A值?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享

20

主题

557

帖子

8

金币

初级会员

Rank: 1

积分
531
2#
 楼主| 发表于 2010-1-30 00:42:59 | 只看该作者
为了不扰乱会员对源码的测试,有问题咨询右侧客服不要直接回复,否则视为非法信息屏蔽会员ID!
回复 1# duanalon


     
/*
* A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
* in FIPS PUB 180-1
* Copyright (C) Paul Johnston 2000 - 2002.
* See http://pajhome.org.uk/site/legal.html for details.
*/
/*
* Convert a 32-bit number to a hex string with ms-byte first
*/
var hex_chr = "0123456789abcdef";
function hex(num)
{
  var str = "";
  for(var j = 7; j >= 0; j--)
    str += hex_chr.charAt((num >> (j * 4)) & 0x0F);
  return str;
}
/*
* Convert a string to a sequence of 16-word blocks, stored as an array.
* Append padding bits and the length, as described in the SHA1 standard.
*/
function str2blks_SHA1(str)
{
  var nblk = ((str.length + 8) >> 6) + 1;
  var blks = new Array(nblk * 16);
  for(var i = 0; i < nblk * 16; i++) blks = 0;
  for(var i = 0; i < str.length; i++)
    blks[i >> 2] |= str.charCodeAt(i) << (24 - (i % 4) * 8);
  blks[i >> 2] |= 0x80 << (24 - (i % 4) * 8);
  blks[nblk * 16 - 1] = str.length * 8;
  return blks;
}
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safe_add(x, y)
{
  var lsw = (x & 0xFFFF) + (y & 0xFFFF);
  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  return (msw << 16) | (lsw & 0xFFFF);
}
/*
* Bitwise rotate a 32-bit number to the left
*/
function rol(num, cnt)
{
  return (num << cnt) | (num >>> (32 - cnt));
}
/*
* Perform the appropriate triplet combination function for the current
* iteration
*/
function ft(t, b, c, d)
{
  if(t < 20) return (b & c) | ((~b) & d);
  if(t < 40) return b ^ c ^ d;
  if(t < 60) return (b & c) | (b & d) | (c & d);
  return b ^ c ^ d;
}
/*
* Determine the appropriate additive constant for the current iteration
*/
function kt(t)
{
  return (t < 20) ?  1518500249 : (t < 40) ?  1859775393 :
         (t < 60) ? -1894007588 : -899497514;
}
/*
* Take a string and return the hex representation of its SHA-1.
*/
function calcSHA1(str)
{
  var x = str2blks_SHA1(str);
  var w = new Array(80);
  var a =  1732584193;
  var b = -271733879;
  var c = -1732584194;
  var d =  271733878;
  var e = -1009589776;
  for(var i = 0; i < x.length; i += 16)
  {
    var olda = a;
    var oldb = b;
    var oldc = c;
    var oldd = d;
    var olde = e;
    for(var j = 0; j < 80; j++)
    {
      if(j < 16) w[j] = x[i + j];
      else w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);
      var t = safe_add(safe_add(rol(a, 5), ft(j, b, c, d)), safe_add(safe_add(e, w[j]), kt(j)));
      e = d;
      d = c;
      c = rol(b, 30);
      b = a;
      a = t;
    }
    a = safe_add(a, olda);
    b = safe_add(b, oldb);
    c = safe_add(c, oldc);
    d = safe_add(d, oldd);
    e = safe_add(e, olde);
  }
  return hex(a) + hex(b) + hex(c) + hex(d) + hex(e);
}

20

主题

557

帖子

8

金币

初级会员

Rank: 1

积分
531
3#
 楼主| 发表于 2010-1-30 01:32:55 | 只看该作者
为了不扰乱会员对源码的测试,有问题咨询右侧客服不要直接回复,否则视为非法信息屏蔽会员ID!
或者用这个算法算下admin的SHA1值是多少?

20

主题

557

帖子

8

金币

初级会员

Rank: 1

积分
531
4#
 楼主| 发表于 2010-1-30 02:14:17 | 只看该作者
为了不扰乱会员对源码的测试,有问题咨询右侧客服不要直接回复,否则视为非法信息屏蔽会员ID!
2楼是个JS文件源文件,换管理员找不到密码了,晕
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

锦尚中国源码论坛

聚合标签|锦尚中国,为中国网站设计添动力 ( 鲁ICP备09033200号 ) |网站地图

GMT+8, 2024-11-27 21:06 , Processed in 0.120254 second(s), 25 queries .

带宽由 锦尚数据 提供 专业的数据中心

© 锦尚中国源码论坛 52jscn Inc. 非法入侵必将受到法律制裁 法律顾问:IT法律网 & 褚福省律师 锦尚爱心 版权申诉 版权与免责声明