webqq2.0协议研究(3)-ClientId生成

    在登陆过程中使用参数clientid,这个参数其实可以自定义的。他的生成没有基于任何服务器返回的参数。但是群里边经常有人提到这个参数算法,

这里我就整理下群里讨论的结果
     clientid 的算法在eqq.all.js里。在dom里可以看到他是webqq.eqq.rpcservice下的getclientid方法返回的。

     js里边的算法为:clientid = String(k.random(0, 99)) + String((new Date()).getTime() % 1000000)
     

     用c#重写:

      以下是群里  ~天 域(41485064)给出的代码:

     

代码
   
     
public static string GenerateClientID()
{
return new Random(Guid.NewGuid().GetHashCode()).Next( 0 , 99 ) + "" + GetTime(DateTime.Now) / 1000000 ;
}
public static long GetTime(DateTime dateTime)
{
DateTime startDate
= new DateTime( 1970 , 1 , 1 );
DateTime endDate
= dateTime.ToUniversalTime();
TimeSpan span
= endDate - startDate;
return ( long )(span.TotalMilliseconds + 0.5 );
}

 

 

webQQ2协议研究群,欢迎各位加入,群号:8033525

 

转载请注明原地址 http://www.cnblogs.com/hackren/archive/2010/11/07/1870903.html

hackren

你可能感兴趣的:(client)