Board logo

标题: [求助]求一个能自动输入QQ号码和密码的批处理文件 [打印本页]

作者: qieagle     时间: 2007-4-19 12:04    标题: [求助]求一个能自动输入QQ号码和密码的批处理文件

  我每天打开电脑时都要重复一件事:打开迅雷和QQ,挂着升级。
  迅雷还好,可以自动登录,而QQ有2个号,不能设为自动登录,只能一个一个输入QQ号码和密码,烦死了!
  请各位大侠帮帮忙,写个批处理文件一次搞定它吧!
作者: flyinspace     时间: 2007-4-19 12:12
自己下载个软件吧。。QQ自动登陆工具。
作者: slore     时间: 2007-4-20 03:46
QQ2个都设置为自动登陆^不过在运行前把自动登陆的哪个什么AUTOLOGIN^文件替换下^就可以实现多QQ启动^
作者: htysm     时间: 2007-4-20 04:42
多个QQ号登陆是很麻烦,一个一个输入密码,能自动登陆最好不过了,不过QQ登陆支持参数吗?
作者: bjsh     时间: 2007-4-20 04:52
用vbs
几行代码不就搞定了么
作者: lililulula     时间: 2007-4-20 05:12
QQPath="path:\QQ.exe"
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run QQPath
WScript.Sleep 2000
WshShell.SendKeys "+{TAB}"
WshShell.SendKeys "QQnumber"
WScript.Sleep 200
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "QQpassword"
WScript.Sleep 200
WshShell.SendKeys "{ENTER}"
作者: qieagle     时间: 2007-4-20 05:20
6楼的大侠:
  惭愧!我看不大懂吔!
  只看出路径、QQ号码、密码3处......
  能否说详细些!
  谢谢了!

[ Last edited by qieagle on 2007-4-19 at 04:21 PM ]
作者: lililulula     时间: 2007-4-20 06:15
这是vbs脚本,将它拷贝到文本文件后,将文本文件后缀改为vbs就可以用了.

QQPath="path:\QQ.exe"  设置QQ运行路径
Set WshShell=WScript.CreateObject("WScript.Shell")  
WshShell.Run QQPath 执行QQ
WScript.Sleep 2000      程序执行后延迟时间2000ms=2s
WshShell.SendKeys "+{TAB}" "+" 表示shift {TAB}表示Tab,shift+tab是QQ启动时跳转输入符向上跳转到用户输入一栏,如果QQ启动时,输入符就在用户名栏可以省掉在这步
WshShell.SendKeys "QQnumber" 输入QQ用户名
WScript.Sleep 200
WshShell.SendKeys "{TAB}" 用tab换到QQ密码栏
WshShell.SendKeys "QQpassword" 输入QQ密码
WScript.Sleep 200
WshShell.SendKeys "{ENTER}" {ENTER}表示回车,回车后QQ自动登陆成功
作者: my3439955     时间: 2007-4-20 07:37
QQ的号码输入框不具备TabStop属性,因此无法自动定位,按多少Tab也没有用Shift+Tab也不能将输入定位到号码输入框,至少QQ的2006,2007是不可以的.因此SendKeys方法是没有用的,也就是说六楼的脚本不对任意QQ号有效.但是对于号码框先前保存的QQ号码,也就是上次登陆的号码,于是只输入密码的话可以有效.但是这样一是会暴露密码明文,二是一旦改变QQ号码,此法将不再有效.但是自动登陆也并非没有办法,腾迅存在一个官方登陆接口,QQ的自动登陆功能也是基于这个接口.

QQ在传输密码的时候,先做一次MD5加密,再做一次BASE64变换,这样可以得到正常的文本信息以便网络传输。对于一个形如“abcd”的密码,加密转换后得到的可用于传输密文就是按照 BASE64(MD5(abcd))的方式转化来的,计算这个表达式,我们可以得到值4vxxTEcn7pOV8yTNLn8zHw==。这样再利用QQ.exe本身支持的命令行参数,就可以实现自动登陆。命令行的形式如下:QQPath\QQ.exe /START QQUIN:123456 PWDHASH: 4vxxTEcn7pOV8yTNLn8zHw== /STAT:40。其中40是表示登陆的状态是隐身登陆,10的话则代表上线登陆。QQPath代表的是QQ的安装路径,这个值随不同机器而异。123456代表的是QQ号码,4vxxTEcn7pOV8yTNLn8zHw==就代表加密转换后的密码“abcd”。将此格式换成真实的信息,就可以实现自动登陆了。

因此,只要做出这样的脚本就可以实现自动登陆了,这里我提供一个脚本作为验证,是我的一个QQ号码,大家可以登陆上去看一看,反正密码是什么也不会泄露
On Error Resume Next
Set Shilyx = CreateObject("WScript.Shell")
QQPath = Shilyx.RegRead("HKLM\SOFTWARE\Tencent\QQ\Install")
Shilyx.Run """" & QQPath & "\QQ.exe"" /START QQUIN:303501987 PWDHASH:WQbDAvPc/eA0ooWlBsq72g== /STAT:40"
直接在系统运行中输入以下内容会有相同效果:
%ComSpec% /c echo CreateObject("WScript.Shell").Run """" + CreateObject("WScript.Shell").RegRead("HKLM\SOFTWARE\Tencent\QQ\Install") + "\QQ.exe"" /START QQUIN:303501987 PWDHASH:WQbDAvPc/eA0ooWlBsq72g== /STAT:40">C:\_Q.vbs & WScript C:\_Q.vbs && del C:\_Q.vbs
这一个可以保证在五月之前有效
产生这种脚本的程序,我这里有一个,不知可否上传?
这里有相关介绍
http://hi.baidu.com/shilyx/blog/item/43a0b6a15212e08b471064c0.htm

[ Last edited by my3439955 on 2007-6-9 at 12:14 AM ]
作者: my3439955     时间: 2007-4-20 07:38
可以在以下地址下载到这个程序

http://shilyxsite.googlepages.com/AutoLogin.exe

[ Last edited by my3439955 on 2007-4-22 at 11:30 AM ]
作者: wangweihebtu     时间: 2007-4-20 07:42
楼上的东东不错-赶紧传上来看看-谢谢分享

[ Last edited by wangweihebtu on 2007-4-19 at 06:57 PM ]
作者: qieagle     时间: 2007-4-20 09:28
感谢6楼、9楼、10楼的朋友!

我用了,都不错!
作者: vkill     时间: 2007-4-20 09:37
很早以前就讨论过了,你们都怎么不搜索啊
作者: qieagle     时间: 2007-4-20 09:37
没想到我的帖子才发了一天,就得到这么多朋友的支持,关键是得到了几位高手的帮助,谢谢了!
作者: zh159     时间: 2007-4-20 10:23
之前已经讨论过了,只要搜索一下就有了,论坛的搜索功能没用???
作者: bw070     时间: 2007-4-20 11:38
寒~ 下2个QQ  一个腾迅的 一个珊瑚虫的 不就搞定了么??
我就是这样的...
作者: vsda2008     时间: 2007-4-20 12:52    标题: 密码怎么转化阿

密码怎么转化阿 密码怎么转化阿
作者: my3439955     时间: 2007-4-21 00:27
密码先做md5转换再做Base64变换,Base64或许你可以口算出来,md5就不可能了,还是要使用工具来变换才行啊,10楼提供了工具了
作者: vsda2008     时间: 2007-4-21 06:45    标题: 怎么用 md5 + base64 生成 PWDHASH: 后的密码阿

怎么用 md5 + base64  生成 PWDHASH: 后的密码阿
作者: luowei144     时间: 2007-4-21 11:17
...恩 学习 学习
作者: vsda2008     时间: 2007-4-21 11:18    标题: Base64变换

md5  弄 可是 base64 弄不成  我生成的密码不能用
那工具 我下了  可是我是想知道 怎么换!
那位朋友 可以指教下 我的base64 工具 好像 算出来不对
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Base64编码加密</title>
</head>

<body>
<table width="773" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td>
        <script language=javascript>
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
    52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
    -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
    15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
    -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
    41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);

function base64encode(str) {
    var out, i, len;
    var c1, c2, c3;

    len = str.length;
    i = 0;
    out = "";
    while(i < len) {
    c1 = str.charCodeAt(i++) & 0xff;
    if(i == len)
    {
        out += base64EncodeChars.charAt(c1 >> 2);
        out += base64EncodeChars.charAt((c1 & 0x3) << 4);
        out += "==";
        break;
    }
    c2 = str.charCodeAt(i++);
    if(i == len)
    {
        out += base64EncodeChars.charAt(c1 >> 2);
        out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
        out += base64EncodeChars.charAt((c2 & 0xF) << 2);
        out += "=";
        break;
    }
    c3 = str.charCodeAt(i++);
    out += base64EncodeChars.charAt(c1 >> 2);
    out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
    out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
    out += base64EncodeChars.charAt(c3 & 0x3F);
    }
    return out;
}

function base64decode(str) {
    var c1, c2, c3, c4;
    var i, len, out;

    len = str.length;
    i = 0;
    out = "";
    while(i < len) {
    /* c1 */
    do {
        c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
    } while(i < len && c1 == -1);
    if(c1 == -1)
        break;

    /* c2 */
    do {
        c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
    } while(i < len && c2 == -1);
    if(c2 == -1)
        break;

    out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));

    /* c3 */
    do {
        c3 = str.charCodeAt(i++) & 0xff;
        if(c3 == 61)
        return out;
        c3 = base64DecodeChars[c3];
    } while(i < len && c3 == -1);
    if(c3 == -1)
        break;

    out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));

    /* c4 */
    do {
        c4 = str.charCodeAt(i++) & 0xff;
        if(c4 == 61)
        return out;
        c4 = base64DecodeChars[c4];
    } while(i < len && c4 == -1);
    if(c4 == -1)
        break;
    out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
    }
    return out;
}

function utf16to8(str) {
    var out, i, len, c;

    out = "";
    len = str.length;
    for(i = 0; i < len; i++) {
    c = str.charCodeAt(i);
    if ((c >= 0x0001) && (c <= 0x007F)) {
        out += str.charAt(i);
    } else if (c > 0x07FF) {
        out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
        out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));
        out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));
    } else {
        out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));
        out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));
    }
    }
    return out;
}

function utf8to16(str) {
    var out, i, len, c;
    var char2, char3;

    out = "";
    len = str.length;
    i = 0;
    while(i < len) {
    c = str.charCodeAt(i++);
    switch(c >> 4)
    {
      case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
        // 0xxxxxxx
        out += str.charAt(i-1);
        break;
      case 12: case 13:
        // 110x xxxx   10xx xxxx
        char2 = str.charCodeAt(i++);
        out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
        break;
      case 14:
        // 1110 xxxx  10xx xxxx  10xx xxxx
        char2 = str.charCodeAt(i++);
        char3 = str.charCodeAt(i++);
        out += String.fromCharCode(((c & 0x0F) << 12) |
                       ((char2 & 0x3F) << 6) |
                       ((char3 & 0x3F) << 0));
        break;
    }
    }

    return out;
}


function doit() {
    var f = document.f
    f.output.value = base64encode(utf16to8(f.source.value))
    f.decode.value = utf8to16(base64decode(f.output.value))
}
</script>
<H1 align="center">Base64编码加密
</H1>
<FORM NAME="f">
原码<BR>
<TEXTAREA NAME="source" ROWS=4 COLS=60 WRAP="soft"></TEXTAREA><BR><BR>
Base64 encode<BR>
<TEXTAREA NAME="output" ROWS=4 COLS=60 WRAP="soft"></TEXTAREA><BR><BR>
Base64 decode<BR>
<TEXTAREA NAME="decode" ROWS=4 COLS=60 WRAP="soft"></TEXTAREA><BR><BR>
<INPUT TYPE=BUTTON VALUE="转换" ONCLICK="doit()">
</FORM>
</td>
  </tr>
</table>
</body>
</html>
作者: my3439955     时间: 2007-4-21 21:57
javascript不是很懂,用它做Base64和md5应该没问题,网上找了些资料,可以实现md5+base64变换,以下是一个完整的网页
<HTML>
  <HEAD>
    <META http-equiv=Content-Type content=text/html; charset=gb2312>
    <TITLE>JavaScript的md5加密办法</TITLE>
  </HEAD>
  
  <BODY >
    <input id=test value=>
    <input type=button value=md5 onclick="alert(hex_md5(test.value))">
    <input type=button value=md5+Base64 onclick="alert(b64_md5(test.value))">
    <script>
      var hexcase = 0;  /* hex output format. 0 - lowercase; 1 - uppercase        */
      var b64pad  = "="; /* base-64 pad character. "=" for strict RFC compliance   */
      var chrsz   = 8;  /* bits per input character. 8 - ASCII; 16 - Unicode      */
      
      function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
      function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
      function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
      function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
      function calcMD5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
      
      function md5_vm_test()
      {
          return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
      }
      
      function core_md5(x, len)
      {
        x[len >> 5] |= 0x80 << ((len) % 32);
        x[(((len + 64) >>> 9) << 4) + 14] = len;
        
        var a =  1732584193;
        var b = -271733879;
        var c = -1732584194;
        var d =  271733878;
        
        for(var i = 0; i < x.length; i += 16)
        {
          var olda = a;
          var oldb = b;
          var oldc = c;
          var oldd = d;
         
          a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
          d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
          c = md5_ff(c, d, a, b, x[i+ 2], 17,  606105819);
          b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
          a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
          d = md5_ff(d, a, b, c, x[i+ 5], 12,  1200080426);
          c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
          b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
          a = md5_ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);
          d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
          c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
          b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
          a = md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);
          d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
          c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
          b = md5_ff(b, c, d, a, x[i+15], 22,  1236535329);
         
          a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
          d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
          c = md5_gg(c, d, a, b, x[i+11], 14,  643717713);
          b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
          a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
          d = md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);
          c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
          b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
          a = md5_gg(a, b, c, d, x[i+ 9], 5 ,  568446438);
          d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
          c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
          b = md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);
          a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
          d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
          c = md5_gg(c, d, a, b, x[i+ 7], 14,  1735328473);
          b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
         
          a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
          d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
          c = md5_hh(c, d, a, b, x[i+11], 16,  1839030562);
          b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
          a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
          d = md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);
          c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
          b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
          a = md5_hh(a, b, c, d, x[i+13], 4 ,  681279174);
          d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
          c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
          b = md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);
          a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
          d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
          c = md5_hh(c, d, a, b, x[i+15], 16,  530742520);
          b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
         
          a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
          d = md5_ii(d, a, b, c, x[i+ 7], 10,  1126891415);
          c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
          b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
          a = md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);
          d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
          c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
          b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
          a = md5_ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);
          d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
          c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
          b = md5_ii(b, c, d, a, x[i+13], 21,  1309151649);
          a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
          d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
          c = md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);
          b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
         
          a = safe_add(a, olda);
          b = safe_add(b, oldb);
          c = safe_add(c, oldc);
          d = safe_add(d, oldd);
        }
        return Array(a, b, c, d);
      }
      
      function md5_cmn(q, a, b, x, s, t)
      {
        return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
      }
      
      function md5_ff(a, b, c, d, x, s, t)
      {
        return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
      }
      
      function md5_gg(a, b, c, d, x, s, t)
      {
        return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
      }
      
      function md5_hh(a, b, c, d, x, s, t)
      {
        return md5_cmn(b ^ c ^ d, a, b, x, s, t);
      }
      
      function md5_ii(a, b, c, d, x, s, t)
      {
        return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
      }
      
      function core_hmac_md5(key, data)
      {
        var bkey = str2binl(key);
        if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
        var ipad = Array(16), opad = Array(16);
        for(var i = 0; i < 16; i++)
        {
          ipad[i] = bkey[i] ^ 0x36363636;
          opad[i] = bkey[i] ^ 0x5C5C5C5C;
        }
        var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
        return core_md5(opad.concat(hash), 512 + 128);
      }
      
      function safe_add(x, y)
      {
        var lsw = (x & 0xFFFF) + (y & 0xFFFF);
        var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
        return (msw << 16) | (lsw & 0xFFFF);
      }
      
      function bit_rol(num, cnt)
      {
        return (num << cnt) | (num >>> (32 - cnt));
      }
      
      function str2binl(str)
      {
        var bin = Array();
        var mask = (1 << chrsz) - 1;
        for(var i = 0; i < str.length * chrsz; i += chrsz)
          bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
        return bin;
      }
      
      function binl2hex(binarray)
      {
        var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
        var str = "";
        for(var i = 0; i < binarray.length * 4; i++)
        {
          str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
                 hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) & 0xF);
        }
        return str;
      }
      
      function binl2b64(binarray)
      {
        var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
        var str = "";
        for(var i = 0; i < binarray.length * 4; i += 3)
        {
          var triplet = (((binarray[i   >> 2] >> 8 * ( i   %4)) & 0xFF) << 16)
                      | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
                      |  ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
          for(var j = 0; j < 4; j++)
          {
            if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
            else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
          }
        }
        return str;
      }
    </script>
  </BODY>
</HTML>
更改了一点 现在可以产生出正确的可用的md5+base64值

[ Last edited by my3439955 on 2007-4-28 at 11:21 AM ]
作者: qieagle     时间: 2007-4-22 08:52
  呵呵!大家讨论得还挺热闹的啊!
作者: tbs198400     时间: 2007-4-22 13:58
呵呵,以后要多用本论坛的搜索功能了
作者: my3439955     时间: 2007-4-23 00:58


  Quote:
Originally posted by tbs198400 at 2007-4-22 13:58:
呵呵,以后要多用本论坛的搜索功能了

不可否认,本贴也有它的价值
作者: vsda2008     时间: 2007-4-23 07:04    标题: 大家说的都好 可是我想分步加米

我的密码经md5加密后md5 16位的是1abc93846cb5d329
                                     32位的是d997bd5e1abc93846cb5d3295c18b71a
下来我用base64转换         16位的是MWFiYzkzODQ2Y2I1ZDMyOQ==
                                     32位的是ZDk5N2JkNWUxYWJjOTM4NDZjYjVkMzI5NWMxOGI3MWE=
可是我真正的密码文是2Ze9Xhq8k4RstdMpXBi3Gg==
请问我错那拉  
help me
作者: zgren1979     时间: 2007-4-23 07:43
学习呀....真正的学技术的帖子...多谢各位前者
作者: my3439955     时间: 2007-4-23 12:36


  Quote:
Originally posted by vsda2008 at 2007-4-23 07:04:
我的密码经md5加密后md5 16位的是1abc93846cb5d329
                                     32位的是d997bd5e1abc93846cb5d3295c18b71a
下来我用base64转换         16位的是MWFiYzkzODQ ...

你的md5是经过16进制变换的,这样MD5可以直观显示,但不是真正的MD5.上一层的MD5未必全部是可显示字符
作者: vsda2008     时间: 2007-4-28 09:19


  Quote:
Originally posted by my3439955 at 2007-4-22 11:36 PM:


你的md5是经过16进制变换的,这样MD5可以直观显示,但不是真正的MD5.上一层的MD5未必全部是可显示字符

看了 你的贴  我很迷茫
那我该怎么半啊
作者: my3439955     时间: 2007-4-28 11:16
是我没说清楚
你得到的md5不是不正确
而是多了一步
你得到了一个32位的d997bd5e1abc93846cb5d3295c18b71a
这不是md5的真面目
它为了让人们可以方便的表示
才做了一个到16进制的变换

比如其中有个字符是(10),那么它是不可显示成字符的,那怎么表示呢
为了方便,就把结果表示成16进制的形式
只要0-9 A-F-就可以表示全部了

说了半天好象说得还不是很明白
作者: 641353685     时间: 2007-4-28 23:53
太深奥了呀
作者: honghunter     时间: 2007-4-29 00:17
有没有命令行使用的,作用是对输入参数做base64 或者md5编码然后输出的小工具啊?

或者,谁知道有什么支持命令行的工具能做这个吗?
作者: honghunter     时间: 2007-4-29 00:17
E:\UnxUtils\usr\local\wbin>md5sum.exe --help
Usage: md5sum.exe [OPTION] [FILE]...
  or:  md5sum.exe [OPTION] --check [FILE]
Print or check MD5 (128-bit) checksums.
With no FILE, or when FILE is -, read standard input.

  -b, --binary            read files in binary mode (default on DOS/Windows)
  -c, --check             check MD5 sums against given list
  -t, --text              read files in text mode (default)

The following two options are useful only when verifying checksums:
      --status            don't output anything, status code shows success
  -w, --warn              warn about improperly formated checksum lines

      --help     display this help and exit
      --version  output version information and exit

The sums are computed as described in RFC 1321.  When checking, the input
should be a former output of this program.  The default mode is to print
a line with checksum, a character indicating type (`*' for binary, ` ' for
text), and name for each FILE.

Report bugs to <bug-textutils@gnu.org>.
作者: honghunter     时间: 2007-4-29 00:20
搜索到了 http://www.cn-dos.net/forum/view ... mp;highlight=base64
作者: lionel126     时间: 2007-5-17 16:13


  Quote:
Originally posted by my3439955 at 2007-4-20 07:38 AM:
可以在以下地址下载到这个程序

http://shilyxsite.googlepages.com/AutoLogin.exe

[ Last edited by my3439955 on 2007-4-22 at 11:30 AM ]

这个程序有错误   我有个号密码转化错误了  缺了好多位
作者: my3439955     时间: 2007-5-23 16:59


  Quote:
Originally posted by lionel126 at 2007-5-17 16:13:

这个程序有错误   我有个号密码转化错误了  缺了好多位

谢谢你,我已经更正了这个问题,新的链接为
http://shilyxsite.googlepages.com/AutoQQ.exe
作者: yjq635     时间: 2007-5-26 22:53
9楼的太牛了
作者: sonicandy     时间: 2007-5-27 11:58
严重同意楼上的
作者: oilio     时间: 2007-5-27 14:40
用QQ自动登陆创建器就可以了,就是把密码明文变为密码的Hash值,可惜没学过编程,也不知道这个是如何转化的。我也习惯用批处理登陆我的QQ号,只是自己不会算。哪位朋友知道这个怎么转的啊?还有换成批处理登陆用了exit也没办法自动退出批处理每次都要自己手动关一下,真是怪事。
作者: my3439955     时间: 2007-5-30 09:43


  Quote:
Originally posted by oilio at 2007-5-27 14:40:
用QQ自动登陆创建器就可以了,就是把密码明文变为密码的Hash值,可惜没学过编程,也不知道这个是如何转化的。我也习惯用批处理登陆我的QQ号,只 ...

9楼的工具也可以生成批处理,在"高级设置"里,并且执行之后会自动退出
作者: 373061200     时间: 2009-5-4 22:12
好像2009不可用
作者: zgrhcf     时间: 2009-5-5 03:14


  Quote:
Originally posted by my3439955 at 2007-4-20 07:38:
可以在以下地址下载到这个程序

http://shilyxsite.googlepages.com/AutoLogin.exe

[ Last edited by my3439955 on 2007-4-22 at 11:30 AM ]

找了很久终于才找到,谢谢楼主分享!
作者: wuji1000     时间: 2009-5-22 10:29
看看这个~~很是牛~~~

http://www.cn-dos.net/forum/viewthread.php?tid=47551&fpage=1
作者: wuji1234     时间: 2009-5-26 06:26
看这里,相当不错~~~~~~~~~~~~~~~~~
http://www.cn-dos.net/forum/viewthread.php?tid=47551&fpage=1
作者: 1048477619     时间: 2010-2-17 22:01
批出理要密码编辑麻烦
作者: wing     时间: 2010-2-18 17:46
9L太强大