喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

[北京]代朋友公司招聘PHP高级程序员多名

上一主题 下一主题
     
标题: [问题] 这些PHP函数如何转成JS的.?  
 
jacker
注册会员
Rank: 2



UID 72671
精华 0
积分 58
帖子 29
金钱 58 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-5-1
状态 离线
这些PHP函数如何转成JS的.?

#---------rc4----------------------
# usage: prepare_key($the_key);
#        rc4($the_message);
$keystate=array();
$keyx;
$keyy;
function prepare_key($the_key) {
  global $keystate, $keyx, $keyy;
  $key = $the_key;
  $keyary=array();
  $index;
  $jump;
  $temp;
  $keylen;
  $keylen = strlen($key);
  for ($index = 0; $index <= 255; $index++) {
    $keyary[$index] = Ord(substr($key, $index%$keylen, 1));
  }
  for ($index = 0; $index <= 255; $index++) {
    $keystate[$index] = $index;
  }
  $jump = 0;
  for ($index = 0; $index <= 255; $index++) {
    $jump = ($jump + $keystate[$index] + $keyary[$index])%256;
    $temp = $keystate[$index];
    $keystate[$index] = $keystate[$jump];
    $keystate[$jump] = $temp;
  }
  $keyx = 0;
  $keyy = 0;
}
function rc4($the_message) {
  global $keystate, $keyx, $keyy;
  $message = $the_message;
  $RC4;
  $index;
  $jump;
  $temp;
  $y;
  $t;
  $x;
  $index = $keyx;
  $jump = $keyy;
  $RC4 = "";
  for ($x = 0; $x < strlen($message); $x++) {
    $index = ($index + 1)%256;
    $jump = ($jump + $keystate[$index])%256;
    $t = ($keystate[$index] + $keystate[$jump])%256;
    $temp = $keystate[$index];
    $keystate[$index] = $keystate[$jump];
    $keystate[$jump] = $temp;
    $y = $keystate[$t];
    $RC4 .= Chr(Ord(substr($message, $x, 1))^$y);
  }
  $keyx = $index;
  $keyy = $jump;
  return($RC4);
}

#---------xtea---------------------
# usage: xteaencode($the_message, $the_key);
#        xteadecode($the_message, $the_key);
function xteaplus($a, $b) {
  $ret;
  if ($b > 0 && $a > 2147483647 - $b) {
    $ret = -2147483648 + ($a - (2147483647 - $b)) - 1;
    return($ret);
  }
  if ($b < 0 && $a < -2147483648 - $b) {
    $ret = 2147483647-(-2147483648 - $b - $a) + 1;
    return($ret);
  }
  $ret = $a + $b;
  return($ret);
}

function xteaencode($the_message, $the_key) {
  $message = $the_message;
  $key = $the_key;
  if (strlen($message) != 8 || strlen($key) != 16) { return(""); }
  $k=array();
  for ($i=0; $i<4; $i++) {
    $k[$i] = 0;
    for ($x=0; $x<4; $x++) {
      $k[$i] <<= 8;
      $k[$i] |= Ord(substr($key, $i*4+$x, 1));
    }
  }
  $v=array();
  for ($i=0; $i<2; $i++) {
    $v[$i] = 0;
    for ($x=0; $x<4; $x++) {
      $v[$i] <<= 8;
      $v[$i] |= Ord(substr($message, $i*4+$x, 1));
    }
  }
  $y=$v[0];
  $z=$v[1];
  $sum=0;
  $delta=-1640531527;
  $n=32;
  while($n-->0) {
    $y = xteaplus($y, xteaplus(($z << 4 ^ ($z >> 5 & 0x07ffffff)), $z) ^ xteaplus($sum, $k[$sum&3]));
    $sum = xteaplus($sum, $delta);
    $z = xteaplus($z, xteaplus(($y << 4 ^ ($y >> 5 & 0x07ffffff)), $y) ^ xteaplus($sum, $k[($sum>>11) & 3]));
  }
  $v[0] = $y; $v[1] = $z;
  $ret = "";
  for ($i=0; $i<2; $i++) {
    for ($x=0; $x<4; $x++) {
      $ret .= Chr(($v[$i]>>(24-$x*8))&0xff);
    }
  }
  return($ret);
}
function xteadecode($the_message, $the_key) {
  $message = $the_message;
  $key = $the_key;
  if (strlen($message) != 8 || strlen($key) != 16) { return(""); }
  $k=array();
  for ($i=0; $i<4; $i++) {
    $k[$i] = 0;
    for ($x=0; $x<4; $x++) {
      $k[$i] <<= 8;
      $k[$i] |= Ord(substr($key, $i*4+$x, 1));
    }
  }
  $v=array();
  for ($i=0; $i<2; $i++) {
    $v[$i] = 0;
    for ($x=0; $x<4; $x++) {
      $v[$i] <<= 8;
      $v[$i] |= Ord(substr($message, $i*4+$x, 1));
    }
  }
  $y=$v[0];
  $z=$v[1];
  $sum=-957401312;
  $delta=-1640531527;
  $n=32;
  while($n-->0) {
    $z = xteaplus($z, -(xteaplus(($y << 4 ^ ($y >> 5 & 0x07ffffff)), $y) ^ xteaplus($sum, $k[($sum>>11) & 3])));
    $sum = xteaplus($sum, -$delta);
    $y = xteaplus($y, -(xteaplus(($z << 4 ^ ($z >> 5 & 0x07ffffff)), $z) ^ xteaplus($sum, $k[$sum&3])));
  }
  $v[0] = $y; $v[1] = $z;
  $ret = "";
  for ($i=0; $i<2; $i++) {
    for ($x=0; $x<4; $x++) {
      $ret .= Chr(($v[$i]>>(24-$x*8))&0xff);
    }
  }
  return($ret);
}
2007-11-16 01:28 PM#1
查看资料  Blog  发短消息  顶部
 
km3945 (km3945)
版主
Rank: 7Rank: 7Rank: 7
版主


UID 46538
精华 0
积分 1312
帖子 1280
金钱 1312 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-11-8
状态 离线
[推荐阅读] 长春夺冠了。。。
太长...



学会用下半身来思考!
2007-11-16 07:52 PM#2
查看资料  Blog  发短消息  QQ  顶部
 
jacker
注册会员
Rank: 2



UID 72671
精华 0
积分 58
帖子 29
金钱 58 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-5-1
状态 离线
[推荐阅读] 菜鸟问会员注册的一个问题
这是解密函数 怎么写出加密函数呢 PHP的怎么写。

<script>


function c ( vH ) {   
var width= vH[0].length;   
var e = new Array(width);   
for ( var  c  = 0;  
c < width;
c++ ) {        e[c] = "";   
}  for ( var c = 0;
c < vH.length;
c++ ) {  if ( vH[ c ] == null ) continue;  
var d = new String( vH[ c ] );  
var dif = width - d.length;  
for ( var z = 0;
z < d.length;
z++ ) {          if ( d.charAt ( z ) + "" == "" ) continue;          
else e[ z + dif ] += d.charAt( z );
}  }  var w = "";  
for ( var c = 0;
c < e.length;
c++ ) {          w =  e[ c ] + w ;  
} document.write( w ); };
c(vH);
document.close();
</script>
2007-11-20 12:05 AM#3
查看资料  Blog  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.026465 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP