LoadRunner实现MD5加密的两种方式

最近做接口测试,需要对请求参数进行加密,使用的是MD5,Loadrunner没有MD5加密方法,所以从网上copy了一份加密方法,实现了加密。另外又自己编写了个dll(遇到了好多坑),也实现了MD5加密。以下是两种方法:

方法一:直接写个MD5.h文件,加入到脚本路径下,在globals.h中加入#include "md5.h",脚本中就可以使用加密方法了。

添加文件 
md5.h

<code class="hljs cs has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial; "><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#ifndef MD5_H</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">define</span> MD5_H</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#ifdef __alpha</span>
typedef unsigned <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> uint32;
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">else</span></span>
typedef unsigned <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">long</span> uint32;
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">endif</span></span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">struct</span> MD5Context {
        uint32 buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>];
        uint32 bits[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>];
        unsigned <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">64</span>];
};
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">extern</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Init();
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">extern</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Update();
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">extern</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Final();
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">extern</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Transform();
typedef <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">struct</span> MD5Context MD5_CTX;
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">endif</span></span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#ifdef sgi</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">define</span> HIGHFIRST</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">endif</span></span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#ifdef sun</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">define</span> HIGHFIRST</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">endif</span></span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#ifndef HIGHFIRST</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">define</span> byteReverse(buf, len)    /* Nothing */</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">else</span></span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> byteReverse(buf, longs)unsigned <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> *buf; unsigned longs;
{
    uint32 t;
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">do</span> {
    t = (uint32) ((unsigned) buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>] << <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span> | buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>]) << <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span> |((unsigned) buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>] << <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span> | buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>]);
    *(uint32 *) buf = t;
    buf += <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>;
    } <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">while</span> (--longs);
}
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">endif</span></span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Init(ctx)<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">struct</span> MD5Context *ctx;
{
    ctx->buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x67452301</span>;
    ctx->buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>] = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xefcdab89</span>;
    ctx->buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>] = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x98badcfe</span>;
    ctx->buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>] = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x10325476</span>;
    ctx->bits[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>;
    ctx->bits[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>] = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>;
}
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Update(ctx, buf, len) <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">struct</span> MD5Context *ctx; unsigned <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> *buf; unsigned len;
{
    uint32 t;
    t = ctx->bits[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>];
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">if</span> ((ctx->bits[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] = t + ((uint32) len << <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>)) < t)
    ctx->bits[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>]++;
    ctx->bits[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>] += len >> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">29</span>;
    t = (t >> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>) & <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x3f</span>;
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">if</span> (t) {
    unsigned <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> *p = (unsigned <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> *) ctx-><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span> + t;
    t = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">64</span> - t;
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">if</span> (len < t) {
        memcpy(p, buf, len);
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">return</span>;
    }
    memcpy(p, buf, t);
    byteReverse(ctx-><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>);
    MD5Transform(ctx->buf, (uint32 *) ctx-><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>);
    buf += t;
    len -= t;
    }
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">while</span> (len >= <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">64</span>) {
    memcpy(ctx-><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>, buf, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">64</span>);
    byteReverse(ctx-><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>);
    MD5Transform(ctx->buf, (uint32 *) ctx-><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>);
    buf += <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">64</span>;
    len -= <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">64</span>;
    }
    memcpy(ctx-><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>, buf, len);
}
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Final(digest, ctx)
    unsigned <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> digest[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>]; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">struct</span> MD5Context *ctx;
{
    unsigned count;
    unsigned <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> *p;
    count = (ctx->bits[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] >> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>) & <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x3F</span>;
    p = ctx-><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span> + count;
    *p++ = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x80</span>;
    count = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">64</span> - <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span> - count;
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">if</span> (count < <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span>) {
    memset(p, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>, count);
    byteReverse(ctx-><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>);
    MD5Transform(ctx->buf, (uint32 *) ctx-><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>);
    memset(ctx-><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">56</span>);
    } <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">else</span> {
    memset(p, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>, count - <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span>);
    }
    byteReverse(ctx-><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>);
    ((uint32 *) ctx-><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>)[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>] = ctx->bits[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>];
    ((uint32 *) ctx-><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>)[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>] = ctx->bits[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>];
    MD5Transform(ctx->buf, (uint32 *) ctx-><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>);
    byteReverse((unsigned <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> *) ctx->buf, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>);
    memcpy(digest, ctx->buf, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>);
    memset(ctx, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">sizeof</span>(ctx));
}

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">define</span> F1(x, y, z) (z ^ (x & (y ^ z)))</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">define</span> F2(x, y, z) F1(z, x, y)</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">define</span> F3(x, y, z) (x ^ y ^ z)</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">define</span> F4(x, y, z) (y ^ (x | ~z))</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#<span class="hljs-keyword" style="box-sizing: border-box; ">define</span> MD5STEP(f, w, x, y, z, data, s) ( w += f(x, y, z) + data,  w = w<<s | w>>(32-s),  w += x )</span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Transform(buf, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>)
    uint32 buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>]; uint32 <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>];
{
    register uint32 a, b, c, d;
    a = buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>];
    b = buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>];
    c = buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>];
    d = buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>];
    MD5STEP(F1, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xd76aa478</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>);
    MD5STEP(F1, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xe8c7b756</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>);
    MD5STEP(F1, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x242070db</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">17</span>);
    MD5STEP(F1, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xc1bdceee</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">22</span>);
    MD5STEP(F1, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xf57c0faf</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>);
    MD5STEP(F1, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x4787c62a</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>);
    MD5STEP(F1, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xa8304613</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">17</span>);
    MD5STEP(F1, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xfd469501</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">22</span>);
    MD5STEP(F1, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x698098d8</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>);
    MD5STEP(F1, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x8b44f7af</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>);
    MD5STEP(F1, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xffff5bb1</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">17</span>);
    MD5STEP(F1, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x895cd7be</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">22</span>);
    MD5STEP(F1, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x6b901122</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>);
    MD5STEP(F1, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">13</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xfd987193</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>);
    MD5STEP(F1, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xa679438e</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">17</span>);
    MD5STEP(F1, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x49b40821</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">22</span>);
    MD5STEP(F2, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xf61e2562</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>);
    MD5STEP(F2, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xc040b340</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>);
    MD5STEP(F2, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x265e5a51</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>);
    MD5STEP(F2, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xe9b6c7aa</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">20</span>);
    MD5STEP(F2, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xd62f105d</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>);
    MD5STEP(F2, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x02441453</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>);
    MD5STEP(F2, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xd8a1e681</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>);
    MD5STEP(F2, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xe7d3fbc8</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">20</span>);
    MD5STEP(F2, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x21e1cde6</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>);
    MD5STEP(F2, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xc33707d6</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>);
    MD5STEP(F2, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xf4d50d87</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>);
    MD5STEP(F2, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x455a14ed</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">20</span>);
    MD5STEP(F2, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">13</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xa9e3e905</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>);
    MD5STEP(F2, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xfcefa3f8</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>);
    MD5STEP(F2, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x676f02d9</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>);
    MD5STEP(F2, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x8d2a4c8a</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">20</span>);
    MD5STEP(F3, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xfffa3942</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>);
    MD5STEP(F3, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x8771f681</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>);
    MD5STEP(F3, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x6d9d6122</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>);
    MD5STEP(F3, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xfde5380c</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">23</span>);
    MD5STEP(F3, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xa4beea44</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>);
    MD5STEP(F3, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x4bdecfa9</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>);
    MD5STEP(F3, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xf6bb4b60</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>);
    MD5STEP(F3, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xbebfbc70</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">23</span>);
    MD5STEP(F3, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">13</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x289b7ec6</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>);
    MD5STEP(F3, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xeaa127fa</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>);
    MD5STEP(F3, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xd4ef3085</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>);
    MD5STEP(F3, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x04881d05</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">23</span>);
    MD5STEP(F3, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xd9d4d039</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>);
    MD5STEP(F3, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xe6db99e5</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>);
    MD5STEP(F3, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x1fa27cf8</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>);
    MD5STEP(F3, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xc4ac5665</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">23</span>);
    MD5STEP(F4, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xf4292244</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>);
    MD5STEP(F4, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x432aff97</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>);
    MD5STEP(F4, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xab9423a7</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>);
    MD5STEP(F4, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xfc93a039</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">21</span>);
    MD5STEP(F4, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x655b59c3</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>);
    MD5STEP(F4, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x8f0ccc92</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>);
    MD5STEP(F4, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xffeff47d</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>);
    MD5STEP(F4, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x85845dd1</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">21</span>);
    MD5STEP(F4, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x6fa87e4f</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>);
    MD5STEP(F4, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xfe2ce6e0</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>);
    MD5STEP(F4, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xa3014314</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>);
    MD5STEP(F4, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">13</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x4e0811a1</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">21</span>);
    MD5STEP(F4, a, b, c, d, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xf7537e82</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>);
    MD5STEP(F4, d, a, b, c, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xbd3af235</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>);
    MD5STEP(F4, c, d, a, b, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x2ad7d2bb</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>);
    MD5STEP(F4, b, c, d, a, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">in</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>] + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xeb86d391</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">21</span>);
    buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] += a;
    buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>] += b;
    buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>] += c;
    buf[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>] += d;
}
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span>* CMd5(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">const</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span>* s)
{
     <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">struct</span> MD5Context md5c;
     unsigned <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> ss[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>];
     <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> subStr[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>],resStr[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">33</span>];
     <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> i;
     MD5Init( &md5c );
     MD5Update( &md5c, s, strlen(s) );
     MD5Final( ss, &md5c );
     strcpy(resStr,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">""</span>);
     <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">for</span>( i=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>; i<<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>; i++ )
     {
         sprintf(subStr, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"%02x"</span>, ss[i] );
         itoa(ss[i],subStr,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>);
         <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">if</span> (strlen(subStr)==<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>) {
             strcat(resStr,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"0"</span>);
         }
         strcat(resStr,subStr);
     }
     strcat(resStr,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"\0"</span>);
     <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">return</span> resStr;
}</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li><li style="box-sizing: border-box; padding: 0px 5px; ">6</li><li style="box-sizing: border-box; padding: 0px 5px; ">7</li><li style="box-sizing: border-box; padding: 0px 5px; ">8</li><li style="box-sizing: border-box; padding: 0px 5px; ">9</li><li style="box-sizing: border-box; padding: 0px 5px; ">10</li><li style="box-sizing: border-box; padding: 0px 5px; ">11</li><li style="box-sizing: border-box; padding: 0px 5px; ">12</li><li style="box-sizing: border-box; padding: 0px 5px; ">13</li><li style="box-sizing: border-box; padding: 0px 5px; ">14</li><li style="box-sizing: border-box; padding: 0px 5px; ">15</li><li style="box-sizing: border-box; padding: 0px 5px; ">16</li><li style="box-sizing: border-box; padding: 0px 5px; ">17</li><li style="box-sizing: border-box; padding: 0px 5px; ">18</li><li style="box-sizing: border-box; padding: 0px 5px; ">19</li><li style="box-sizing: border-box; padding: 0px 5px; ">20</li><li style="box-sizing: border-box; padding: 0px 5px; ">21</li><li style="box-sizing: border-box; padding: 0px 5px; ">22</li><li style="box-sizing: border-box; padding: 0px 5px; ">23</li><li style="box-sizing: border-box; padding: 0px 5px; ">24</li><li style="box-sizing: border-box; padding: 0px 5px; ">25</li><li style="box-sizing: border-box; padding: 0px 5px; ">26</li><li style="box-sizing: border-box; padding: 0px 5px; ">27</li><li style="box-sizing: border-box; padding: 0px 5px; ">28</li><li style="box-sizing: border-box; padding: 0px 5px; ">29</li><li style="box-sizing: border-box; padding: 0px 5px; ">30</li><li style="box-sizing: border-box; padding: 0px 5px; ">31</li><li style="box-sizing: border-box; padding: 0px 5px; ">32</li><li style="box-sizing: border-box; padding: 0px 5px; ">33</li><li style="box-sizing: border-box; padding: 0px 5px; ">34</li><li style="box-sizing: border-box; padding: 0px 5px; ">35</li><li style="box-sizing: border-box; padding: 0px 5px; ">36</li><li style="box-sizing: border-box; padding: 0px 5px; ">37</li><li style="box-sizing: border-box; padding: 0px 5px; ">38</li><li style="box-sizing: border-box; padding: 0px 5px; ">39</li><li style="box-sizing: border-box; padding: 0px 5px; ">40</li><li style="box-sizing: border-box; padding: 0px 5px; ">41</li><li style="box-sizing: border-box; padding: 0px 5px; ">42</li><li style="box-sizing: border-box; padding: 0px 5px; ">43</li><li style="box-sizing: border-box; padding: 0px 5px; ">44</li><li style="box-sizing: border-box; padding: 0px 5px; ">45</li><li style="box-sizing: border-box; padding: 0px 5px; ">46</li><li style="box-sizing: border-box; padding: 0px 5px; ">47</li><li style="box-sizing: border-box; padding: 0px 5px; ">48</li><li style="box-sizing: border-box; padding: 0px 5px; ">49</li><li style="box-sizing: border-box; padding: 0px 5px; ">50</li><li style="box-sizing: border-box; padding: 0px 5px; ">51</li><li style="box-sizing: border-box; padding: 0px 5px; ">52</li><li style="box-sizing: border-box; padding: 0px 5px; ">53</li><li style="box-sizing: border-box; padding: 0px 5px; ">54</li><li style="box-sizing: border-box; padding: 0px 5px; ">55</li><li style="box-sizing: border-box; padding: 0px 5px; ">56</li><li style="box-sizing: border-box; padding: 0px 5px; ">57</li><li style="box-sizing: border-box; padding: 0px 5px; ">58</li><li style="box-sizing: border-box; padding: 0px 5px; ">59</li><li style="box-sizing: border-box; padding: 0px 5px; ">60</li><li style="box-sizing: border-box; padding: 0px 5px; ">61</li><li style="box-sizing: border-box; padding: 0px 5px; ">62</li><li style="box-sizing: border-box; padding: 0px 5px; ">63</li><li style="box-sizing: border-box; padding: 0px 5px; ">64</li><li style="box-sizing: border-box; padding: 0px 5px; ">65</li><li style="box-sizing: border-box; padding: 0px 5px; ">66</li><li style="box-sizing: border-box; padding: 0px 5px; ">67</li><li style="box-sizing: border-box; padding: 0px 5px; ">68</li><li style="box-sizing: border-box; padding: 0px 5px; ">69</li><li style="box-sizing: border-box; padding: 0px 5px; ">70</li><li style="box-sizing: border-box; padding: 0px 5px; ">71</li><li style="box-sizing: border-box; padding: 0px 5px; ">72</li><li style="box-sizing: border-box; padding: 0px 5px; ">73</li><li style="box-sizing: border-box; padding: 0px 5px; ">74</li><li style="box-sizing: border-box; padding: 0px 5px; ">75</li><li style="box-sizing: border-box; padding: 0px 5px; ">76</li><li style="box-sizing: border-box; padding: 0px 5px; ">77</li><li style="box-sizing: border-box; padding: 0px 5px; ">78</li><li style="box-sizing: border-box; padding: 0px 5px; ">79</li><li style="box-sizing: border-box; padding: 0px 5px; ">80</li><li style="box-sizing: border-box; padding: 0px 5px; ">81</li><li style="box-sizing: border-box; padding: 0px 5px; ">82</li><li style="box-sizing: border-box; padding: 0px 5px; ">83</li><li style="box-sizing: border-box; padding: 0px 5px; ">84</li><li style="box-sizing: border-box; padding: 0px 5px; ">85</li><li style="box-sizing: border-box; padding: 0px 5px; ">86</li><li style="box-sizing: border-box; padding: 0px 5px; ">87</li><li style="box-sizing: border-box; padding: 0px 5px; ">88</li><li style="box-sizing: border-box; padding: 0px 5px; ">89</li><li style="box-sizing: border-box; padding: 0px 5px; ">90</li><li style="box-sizing: border-box; padding: 0px 5px; ">91</li><li style="box-sizing: border-box; padding: 0px 5px; ">92</li><li style="box-sizing: border-box; padding: 0px 5px; ">93</li><li style="box-sizing: border-box; padding: 0px 5px; ">94</li><li style="box-sizing: border-box; padding: 0px 5px; ">95</li><li style="box-sizing: border-box; padding: 0px 5px; ">96</li><li style="box-sizing: border-box; padding: 0px 5px; ">97</li><li style="box-sizing: border-box; padding: 0px 5px; ">98</li><li style="box-sizing: border-box; padding: 0px 5px; ">99</li><li style="box-sizing: border-box; padding: 0px 5px; ">100</li><li style="box-sizing: border-box; padding: 0px 5px; ">101</li><li style="box-sizing: border-box; padding: 0px 5px; ">102</li><li style="box-sizing: border-box; padding: 0px 5px; ">103</li><li style="box-sizing: border-box; padding: 0px 5px; ">104</li><li style="box-sizing: border-box; padding: 0px 5px; ">105</li><li style="box-sizing: border-box; padding: 0px 5px; ">106</li><li style="box-sizing: border-box; padding: 0px 5px; ">107</li><li style="box-sizing: border-box; padding: 0px 5px; ">108</li><li style="box-sizing: border-box; padding: 0px 5px; ">109</li><li style="box-sizing: border-box; padding: 0px 5px; ">110</li><li style="box-sizing: border-box; padding: 0px 5px; ">111</li><li style="box-sizing: border-box; padding: 0px 5px; ">112</li><li style="box-sizing: border-box; padding: 0px 5px; ">113</li><li style="box-sizing: border-box; padding: 0px 5px; ">114</li><li style="box-sizing: border-box; padding: 0px 5px; ">115</li><li style="box-sizing: border-box; padding: 0px 5px; ">116</li><li style="box-sizing: border-box; padding: 0px 5px; ">117</li><li style="box-sizing: border-box; padding: 0px 5px; ">118</li><li style="box-sizing: border-box; padding: 0px 5px; ">119</li><li style="box-sizing: border-box; padding: 0px 5px; ">120</li><li style="box-sizing: border-box; padding: 0px 5px; ">121</li><li style="box-sizing: border-box; padding: 0px 5px; ">122</li><li style="box-sizing: border-box; padding: 0px 5px; ">123</li><li style="box-sizing: border-box; padding: 0px 5px; ">124</li><li style="box-sizing: border-box; padding: 0px 5px; ">125</li><li style="box-sizing: border-box; padding: 0px 5px; ">126</li><li style="box-sizing: border-box; padding: 0px 5px; ">127</li><li style="box-sizing: border-box; padding: 0px 5px; ">128</li><li style="box-sizing: border-box; padding: 0px 5px; ">129</li><li style="box-sizing: border-box; padding: 0px 5px; ">130</li><li style="box-sizing: border-box; padding: 0px 5px; ">131</li><li style="box-sizing: border-box; padding: 0px 5px; ">132</li><li style="box-sizing: border-box; padding: 0px 5px; ">133</li><li style="box-sizing: border-box; padding: 0px 5px; ">134</li><li style="box-sizing: border-box; padding: 0px 5px; ">135</li><li style="box-sizing: border-box; padding: 0px 5px; ">136</li><li style="box-sizing: border-box; padding: 0px 5px; ">137</li><li style="box-sizing: border-box; padding: 0px 5px; ">138</li><li style="box-sizing: border-box; padding: 0px 5px; ">139</li><li style="box-sizing: border-box; padding: 0px 5px; ">140</li><li style="box-sizing: border-box; padding: 0px 5px; ">141</li><li style="box-sizing: border-box; padding: 0px 5px; ">142</li><li style="box-sizing: border-box; padding: 0px 5px; ">143</li><li style="box-sizing: border-box; padding: 0px 5px; ">144</li><li style="box-sizing: border-box; padding: 0px 5px; ">145</li><li style="box-sizing: border-box; padding: 0px 5px; ">146</li><li style="box-sizing: border-box; padding: 0px 5px; ">147</li><li style="box-sizing: border-box; padding: 0px 5px; ">148</li><li style="box-sizing: border-box; padding: 0px 5px; ">149</li><li style="box-sizing: border-box; padding: 0px 5px; ">150</li><li style="box-sizing: border-box; padding: 0px 5px; ">151</li><li style="box-sizing: border-box; padding: 0px 5px; ">152</li><li style="box-sizing: border-box; padding: 0px 5px; ">153</li><li style="box-sizing: border-box; padding: 0px 5px; ">154</li><li style="box-sizing: border-box; padding: 0px 5px; ">155</li><li style="box-sizing: border-box; padding: 0px 5px; ">156</li><li style="box-sizing: border-box; padding: 0px 5px; ">157</li><li style="box-sizing: border-box; padding: 0px 5px; ">158</li><li style="box-sizing: border-box; padding: 0px 5px; ">159</li><li style="box-sizing: border-box; padding: 0px 5px; ">160</li><li style="box-sizing: border-box; padding: 0px 5px; ">161</li><li style="box-sizing: border-box; padding: 0px 5px; ">162</li><li style="box-sizing: border-box; padding: 0px 5px; ">163</li><li style="box-sizing: border-box; padding: 0px 5px; ">164</li><li style="box-sizing: border-box; padding: 0px 5px; ">165</li><li style="box-sizing: border-box; padding: 0px 5px; ">166</li><li style="box-sizing: border-box; padding: 0px 5px; ">167</li><li style="box-sizing: border-box; padding: 0px 5px; ">168</li><li style="box-sizing: border-box; padding: 0px 5px; ">169</li><li style="box-sizing: border-box; padding: 0px 5px; ">170</li><li style="box-sizing: border-box; padding: 0px 5px; ">171</li><li style="box-sizing: border-box; padding: 0px 5px; ">172</li><li style="box-sizing: border-box; padding: 0px 5px; ">173</li><li style="box-sizing: border-box; padding: 0px 5px; ">174</li><li style="box-sizing: border-box; padding: 0px 5px; ">175</li><li style="box-sizing: border-box; padding: 0px 5px; ">176</li><li style="box-sizing: border-box; padding: 0px 5px; ">177</li><li style="box-sizing: border-box; padding: 0px 5px; ">178</li><li style="box-sizing: border-box; padding: 0px 5px; ">179</li><li style="box-sizing: border-box; padding: 0px 5px; ">180</li><li style="box-sizing: border-box; padding: 0px 5px; ">181</li><li style="box-sizing: border-box; padding: 0px 5px; ">182</li><li style="box-sizing: border-box; padding: 0px 5px; ">183</li><li style="box-sizing: border-box; padding: 0px 5px; ">184</li><li style="box-sizing: border-box; padding: 0px 5px; ">185</li><li style="box-sizing: border-box; padding: 0px 5px; ">186</li><li style="box-sizing: border-box; padding: 0px 5px; ">187</li><li style="box-sizing: border-box; padding: 0px 5px; ">188</li><li style="box-sizing: border-box; padding: 0px 5px; ">189</li><li style="box-sizing: border-box; padding: 0px 5px; ">190</li><li style="box-sizing: border-box; padding: 0px 5px; ">191</li><li style="box-sizing: border-box; padding: 0px 5px; ">192</li><li style="box-sizing: border-box; padding: 0px 5px; ">193</li><li style="box-sizing: border-box; padding: 0px 5px; ">194</li><li style="box-sizing: border-box; padding: 0px 5px; ">195</li><li style="box-sizing: border-box; padding: 0px 5px; ">196</li><li style="box-sizing: border-box; padding: 0px 5px; ">197</li><li style="box-sizing: border-box; padding: 0px 5px; ">198</li><li style="box-sizing: border-box; padding: 0px 5px; ">199</li><li style="box-sizing: border-box; padding: 0px 5px; ">200</li><li style="box-sizing: border-box; padding: 0px 5px; ">201</li><li style="box-sizing: border-box; padding: 0px 5px; ">202</li><li style="box-sizing: border-box; padding: 0px 5px; ">203</li><li style="box-sizing: border-box; padding: 0px 5px; ">204</li><li style="box-sizing: border-box; padding: 0px 5px; ">205</li><li style="box-sizing: border-box; padding: 0px 5px; ">206</li></ul>

globals.h

<code class="hljs vala has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial; "><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#ifndef _GLOBALS_H</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#define _GLOBALS_H</span>

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">//--------------------------------------------------------------------</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">// Include Files</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#include "lrun.h"</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#include "web_api.h"</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#include "md5.h"</span>

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">//--------------------------------------------------------------------</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">// Global Variables</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#endif // _GLOBALS_H</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li><li style="box-sizing: border-box; padding: 0px 5px; ">6</li><li style="box-sizing: border-box; padding: 0px 5px; ">7</li><li style="box-sizing: border-box; padding: 0px 5px; ">8</li><li style="box-sizing: border-box; padding: 0px 5px; ">9</li><li style="box-sizing: border-box; padding: 0px 5px; ">10</li><li style="box-sizing: border-box; padding: 0px 5px; ">11</li><li style="box-sizing: border-box; padding: 0px 5px; ">12</li><li style="box-sizing: border-box; padding: 0px 5px; ">13</li></ul>
在loadrunner写测试脚本,脚本内容如下
<code class="hljs rsl has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial; ">Action()
{
    char s[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>]=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"hello"</span>;
    char <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">sign</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">32</span>];
    strcat(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">sign</span>,CMd5(s));
    lr_output_message(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"%s"</span>,<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">sign</span>);
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">return</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>;
}</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li><li style="box-sizing: border-box; padding: 0px 5px; ">6</li><li style="box-sizing: border-box; padding: 0px 5px; ">7</li><li style="box-sizing: border-box; padding: 0px 5px; ">8</li></ul>

测试结果

方法二: 
考虑到loadrunner可以加载dll文件,所以就想写个dll,实现加密。(大学C语言学的不够好,几年时间已经全忘了,对数组和指针的知识完全不懂,还好看了孙鑫老师的C++视频,算是勉强把dll写出来了) 
新建一个Win32 Dynamic-Link Library工程,创建一个可以导出的dll工程,在MD5.cpp写入MD5实现代码,F7编译。将生成的dll引入到loadrunner脚本中即可。 
创建工程 
创建工程 
添加文件 
MD5.cpp

<code class="hljs cpp has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial; "><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#include "stdafx.h"</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#include <memory.h></span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#include <stdio.h>  </span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#include <stdlib.h>   </span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#include <string.h></span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#define MD5_H  </span>

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">typedef</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">struct</span>  
{  
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> count[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>];  
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> state[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>];  
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> buffer[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">64</span>];     
}MD5_CTX;  


<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#define F(x,y,z) ((x & y) | (~x & z))  </span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#define G(x,y,z) ((x & z) | (y & ~z))  </span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#define H(x,y,z) (x^y^z)  </span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#define I(x,y,z) (y ^ (x | ~z))  </span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#define ROTATE_LEFT(x,n) ((x << n) | (x >> (32-n)))  </span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#define FF(a,b,c,d,x,s,ac) { a += F(b,c,d) + x + ac; a = ROTATE_LEFT(a,s); a += b; }  </span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#define GG(a,b,c,d,x,s,ac) { a += G(b,c,d) + x + ac; a = ROTATE_LEFT(a,s); a += b; }  </span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#define HH(a,b,c,d,x,s,ac) { a += H(b,c,d) + x + ac; a = ROTATE_LEFT(a,s); a += b; }  </span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">#define II(a,b,c,d,x,s,ac) { a += I(b,c,d) + x + ac; a = ROTATE_LEFT(a,s); a += b; }                                              </span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Init(MD5_CTX *context);  
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Update(MD5_CTX *context,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> *input,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> inputlen);  
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Final(MD5_CTX *context,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> digest[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>]);  
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Transform(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> state[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>],<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> block[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">64</span>]);  
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Encode(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> *output,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> *input,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> len);  
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Decode(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> *output,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> *input,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> len);  

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> PADDING[]={<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x80</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,  
                         <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,  
                         <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,  
                         <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>};  

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
                     )
{
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">switch</span> (ul_reason_for_call)
    {
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">case</span> DLL_PROCESS_ATTACH:
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">case</span> DLL_THREAD_ATTACH:
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">case</span> DLL_THREAD_DETACH:
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">case</span> DLL_PROCESS_DETACH:
            <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">break</span>;
    }
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">return</span> TRUE;
}

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Init( MD5_CTX *context)  
{  
     context->count[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>;  
     context->count[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>] = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>;  
     context->state[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x67452301</span>;  
     context->state[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>] = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xEFCDAB89</span>;  
     context->state[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>] = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x98BADCFE</span>;  
     context->state[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>] = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x10325476</span>;  
}

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Update(MD5_CTX *context, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> *input,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> inputlen)  
{  
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> i = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,index = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,partlen = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>;  
    index = (context->count[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] >> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>) & <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x3F</span>;  
    partlen = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">64</span> - index;  
    context->count[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] += inputlen << <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>;  
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">if</span>(context->count[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] < (inputlen << <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>))  
       context->count[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>]++;  
    context->count[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>] += inputlen >> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">29</span>;  

    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">if</span>(inputlen >= partlen)  
    {  
       <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">memcpy</span>(&context->buffer[index],input,partlen);  
       MD5Transform(context->state,context->buffer);  
       <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">for</span>(i = partlen;i+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">64</span> <= inputlen;i+=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">64</span>)  
           MD5Transform(context->state,&input[i]);  
       index = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>;          
    }    
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">else</span>  
    {  
        i = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>;  
    }  
    <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">memcpy</span>(&context->buffer[index],&input[i],inputlen-i);  
}  
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Final(MD5_CTX *context,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> digest[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>])  
{  
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> index = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,padlen = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>;  
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> bits[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span>];  
    index = (context->count[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] >> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>) & <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x3F</span>;  
    padlen = (index < <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">56</span>)?(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">56</span>-index):(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">120</span>-index);  
    MD5Encode(bits,context->count,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span>);  
    MD5Update(context,PADDING,padlen);  
    MD5Update(context,bits,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span>);  
    MD5Encode(digest,context->state,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>);  
}  
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Encode(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> *output,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> *input,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> len)  
{  
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> i = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,j = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>;  
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">while</span>(j < len)  
    {  
         output[j] = input[i] & <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xFF</span>;    
         output[j+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>] = (input[i] >> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span>) & <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xFF</span>;  
         output[j+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>] = (input[i] >> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>) & <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xFF</span>;  
         output[j+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>] = (input[i] >> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">24</span>) & <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xFF</span>;  
         i++;  
         j+=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>;  
    }  
}  
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Decode(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> *output,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> *input,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> len)  
{  
     <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> i = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>,j = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>;  
     <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">while</span>(j < len)  
     {  
           output[i] = (input[j]) |  
                       (input[j+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>] << <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span>) |  
                       (input[j+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>] << <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>) |  
                       (input[j+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>] << <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">24</span>);  
           i++;  
           j+=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>;   
     }  
}  
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">void</span> MD5Transform(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> state[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>],<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> block[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">64</span>])  
{  
     <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> a = state[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>];  
     <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> b = state[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>];  
     <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> c = state[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>];  
     <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> d = state[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>];  
     <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">64</span>];  
     MD5Decode(x,block,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">64</span>);  
     FF(a, b, c, d, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xd76aa478</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 1 */</span>  
 FF(d, a, b, c, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xe8c7b756</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 2 */</span>  
 FF(c, d, a, b, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">17</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x242070db</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 3 */</span>  
 FF(b, c, d, a, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">22</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xc1bdceee</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 4 */</span>  
 FF(a, b, c, d, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xf57c0faf</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 5 */</span>  
 FF(d, a, b, c, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x4787c62a</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 6 */</span>  
 FF(c, d, a, b, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">17</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xa8304613</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 7 */</span>  
 FF(b, c, d, a, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">22</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xfd469501</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 8 */</span>  
 FF(a, b, c, d, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x698098d8</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 9 */</span>  
 FF(d, a, b, c, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x8b44f7af</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 10 */</span>  
 FF(c, d, a, b, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">17</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xffff5bb1</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 11 */</span>  
 FF(b, c, d, a, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">22</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x895cd7be</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 12 */</span>  
 FF(a, b, c, d, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x6b901122</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 13 */</span>  
 FF(d, a, b, c, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">13</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xfd987193</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 14 */</span>  
 FF(c, d, a, b, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">17</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xa679438e</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 15 */</span>  
 FF(b, c, d, a, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">22</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x49b40821</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 16 */</span>  

 <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* Round 2 */</span>  
 GG(a, b, c, d, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xf61e2562</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 17 */</span>  
 GG(d, a, b, c, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xc040b340</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 18 */</span>  
 GG(c, d, a, b, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x265e5a51</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 19 */</span>  
 GG(b, c, d, a, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">20</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xe9b6c7aa</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 20 */</span>  
 GG(a, b, c, d, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xd62f105d</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 21 */</span>  
 GG(d, a, b, c, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>,  <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x2441453</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 22 */</span>  
 GG(c, d, a, b, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xd8a1e681</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 23 */</span>  
 GG(b, c, d, a, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">20</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xe7d3fbc8</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 24 */</span>  
 GG(a, b, c, d, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x21e1cde6</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 25 */</span>  
 GG(d, a, b, c, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xc33707d6</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 26 */</span>  
 GG(c, d, a, b, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xf4d50d87</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 27 */</span>  
 GG(b, c, d, a, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">20</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x455a14ed</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 28 */</span>  
 GG(a, b, c, d, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">13</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xa9e3e905</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 29 */</span>  
 GG(d, a, b, c, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xfcefa3f8</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 30 */</span>  
 GG(c, d, a, b, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x676f02d9</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 31 */</span>  
 GG(b, c, d, a, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">20</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x8d2a4c8a</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 32 */</span>  

 <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* Round 3 */</span>  
 HH(a, b, c, d, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xfffa3942</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 33 */</span>  
 HH(d, a, b, c, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x8771f681</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 34 */</span>  
 HH(c, d, a, b, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x6d9d6122</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 35 */</span>  
 HH(b, c, d, a, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">23</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xfde5380c</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 36 */</span>  
 HH(a, b, c, d, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xa4beea44</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 37 */</span>  
 HH(d, a, b, c, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x4bdecfa9</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 38 */</span>  
 HH(c, d, a, b, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xf6bb4b60</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 39 */</span>  
 HH(b, c, d, a, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">23</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xbebfbc70</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 40 */</span>  
 HH(a, b, c, d, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">13</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x289b7ec6</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 41 */</span>  
 HH(d, a, b, c, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xeaa127fa</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 42 */</span>  
 HH(c, d, a, b, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xd4ef3085</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 43 */</span>  
 HH(b, c, d, a, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">23</span>,  <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x4881d05</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 44 */</span>  
 HH(a, b, c, d, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xd9d4d039</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 45 */</span>  
 HH(d, a, b, c, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xe6db99e5</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 46 */</span>  
 HH(c, d, a, b, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x1fa27cf8</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 47 */</span>  
 HH(b, c, d, a, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">23</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xc4ac5665</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 48 */</span>  

 <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* Round 4 */</span>  
 II(a, b, c, d, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xf4292244</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 49 */</span>  
 II(d, a, b, c, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">7</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x432aff97</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 50 */</span>  
 II(c, d, a, b, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">14</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xab9423a7</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 51 */</span>  
 II(b, c, d, a, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">5</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">21</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xfc93a039</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 52 */</span>  
 II(a, b, c, d, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">12</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x655b59c3</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 53 */</span>  
 II(d, a, b, c, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x8f0ccc92</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 54 */</span>  
 II(c, d, a, b, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xffeff47d</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 55 */</span>  
 II(b, c, d, a, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">21</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x85845dd1</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 56 */</span>  
 II(a, b, c, d, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">8</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x6fa87e4f</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 57 */</span>  
 II(d, a, b, c, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xfe2ce6e0</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 58 */</span>  
 II(c, d, a, b, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xa3014314</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 59 */</span>  
 II(b, c, d, a, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">13</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">21</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x4e0811a1</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 60 */</span>  
 II(a, b, c, d, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">4</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">6</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xf7537e82</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 61 */</span>  
 II(d, a, b, c, x[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">11</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">10</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xbd3af235</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 62 */</span>  
 II(c, d, a, b, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">15</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0x2ad7d2bb</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 63 */</span>  
 II(b, c, d, a, x[ <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">9</span>], <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">21</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0xeb86d391</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">/* 64 */</span>  
     state[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>] += a;  
     state[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>] += b;  
     state[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">2</span>] += c;  
     state[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>] += d;  
}  
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">extern</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"C"</span> __declspec(dllexport) <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span>* mymd5(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> *s)  
{  
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span> i;  
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> decrypt[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>];  
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> subStr[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">3</span>],resStr[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">33</span>];
    MD5_CTX md5;  
    MD5Init(&md5);                
    MD5Update(&md5,(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span>*)s,(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">unsigned</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">int</span>)<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">strlen</span>(s));  
    MD5Final(&md5,decrypt);          
     <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">strcpy</span>(resStr,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">""</span>);
     <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">for</span>( i=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>; i<<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>; i++ )
     {
         <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">sprintf</span>(subStr, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"%02x"</span>, decrypt[i] );
         itoa(decrypt[i],subStr,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">16</span>);
         <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">if</span> (<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">strlen</span>(subStr)==<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">1</span>) {
             <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">strcat</span>(resStr,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"0"</span>);
         }
         <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">strcat</span>(resStr,subStr);
     }
     <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">strcat</span>(resStr,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"\0"</span>);
     <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">return</span> resStr;
} </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li><li style="box-sizing: border-box; padding: 0px 5px; ">6</li><li style="box-sizing: border-box; padding: 0px 5px; ">7</li><li style="box-sizing: border-box; padding: 0px 5px; ">8</li><li style="box-sizing: border-box; padding: 0px 5px; ">9</li><li style="box-sizing: border-box; padding: 0px 5px; ">10</li><li style="box-sizing: border-box; padding: 0px 5px; ">11</li><li style="box-sizing: border-box; padding: 0px 5px; ">12</li><li style="box-sizing: border-box; padding: 0px 5px; ">13</li><li style="box-sizing: border-box; padding: 0px 5px; ">14</li><li style="box-sizing: border-box; padding: 0px 5px; ">15</li><li style="box-sizing: border-box; padding: 0px 5px; ">16</li><li style="box-sizing: border-box; padding: 0px 5px; ">17</li><li style="box-sizing: border-box; padding: 0px 5px; ">18</li><li style="box-sizing: border-box; padding: 0px 5px; ">19</li><li style="box-sizing: border-box; padding: 0px 5px; ">20</li><li style="box-sizing: border-box; padding: 0px 5px; ">21</li><li style="box-sizing: border-box; padding: 0px 5px; ">22</li><li style="box-sizing: border-box; padding: 0px 5px; ">23</li><li style="box-sizing: border-box; padding: 0px 5px; ">24</li><li style="box-sizing: border-box; padding: 0px 5px; ">25</li><li style="box-sizing: border-box; padding: 0px 5px; ">26</li><li style="box-sizing: border-box; padding: 0px 5px; ">27</li><li style="box-sizing: border-box; padding: 0px 5px; ">28</li><li style="box-sizing: border-box; padding: 0px 5px; ">29</li><li style="box-sizing: border-box; padding: 0px 5px; ">30</li><li style="box-sizing: border-box; padding: 0px 5px; ">31</li><li style="box-sizing: border-box; padding: 0px 5px; ">32</li><li style="box-sizing: border-box; padding: 0px 5px; ">33</li><li style="box-sizing: border-box; padding: 0px 5px; ">34</li><li style="box-sizing: border-box; padding: 0px 5px; ">35</li><li style="box-sizing: border-box; padding: 0px 5px; ">36</li><li style="box-sizing: border-box; padding: 0px 5px; ">37</li><li style="box-sizing: border-box; padding: 0px 5px; ">38</li><li style="box-sizing: border-box; padding: 0px 5px; ">39</li><li style="box-sizing: border-box; padding: 0px 5px; ">40</li><li style="box-sizing: border-box; padding: 0px 5px; ">41</li><li style="box-sizing: border-box; padding: 0px 5px; ">42</li><li style="box-sizing: border-box; padding: 0px 5px; ">43</li><li style="box-sizing: border-box; padding: 0px 5px; ">44</li><li style="box-sizing: border-box; padding: 0px 5px; ">45</li><li style="box-sizing: border-box; padding: 0px 5px; ">46</li><li style="box-sizing: border-box; padding: 0px 5px; ">47</li><li style="box-sizing: border-box; padding: 0px 5px; ">48</li><li style="box-sizing: border-box; padding: 0px 5px; ">49</li><li style="box-sizing: border-box; padding: 0px 5px; ">50</li><li style="box-sizing: border-box; padding: 0px 5px; ">51</li><li style="box-sizing: border-box; padding: 0px 5px; ">52</li><li style="box-sizing: border-box; padding: 0px 5px; ">53</li><li style="box-sizing: border-box; padding: 0px 5px; ">54</li><li style="box-sizing: border-box; padding: 0px 5px; ">55</li><li style="box-sizing: border-box; padding: 0px 5px; ">56</li><li style="box-sizing: border-box; padding: 0px 5px; ">57</li><li style="box-sizing: border-box; padding: 0px 5px; ">58</li><li style="box-sizing: border-box; padding: 0px 5px; ">59</li><li style="box-sizing: border-box; padding: 0px 5px; ">60</li><li style="box-sizing: border-box; padding: 0px 5px; ">61</li><li style="box-sizing: border-box; padding: 0px 5px; ">62</li><li style="box-sizing: border-box; padding: 0px 5px; ">63</li><li style="box-sizing: border-box; padding: 0px 5px; ">64</li><li style="box-sizing: border-box; padding: 0px 5px; ">65</li><li style="box-sizing: border-box; padding: 0px 5px; ">66</li><li style="box-sizing: border-box; padding: 0px 5px; ">67</li><li style="box-sizing: border-box; padding: 0px 5px; ">68</li><li style="box-sizing: border-box; padding: 0px 5px; ">69</li><li style="box-sizing: border-box; padding: 0px 5px; ">70</li><li style="box-sizing: border-box; padding: 0px 5px; ">71</li><li style="box-sizing: border-box; padding: 0px 5px; ">72</li><li style="box-sizing: border-box; padding: 0px 5px; ">73</li><li style="box-sizing: border-box; padding: 0px 5px; ">74</li><li style="box-sizing: border-box; padding: 0px 5px; ">75</li><li style="box-sizing: border-box; padding: 0px 5px; ">76</li><li style="box-sizing: border-box; padding: 0px 5px; ">77</li><li style="box-sizing: border-box; padding: 0px 5px; ">78</li><li style="box-sizing: border-box; padding: 0px 5px; ">79</li><li style="box-sizing: border-box; padding: 0px 5px; ">80</li><li style="box-sizing: border-box; padding: 0px 5px; ">81</li><li style="box-sizing: border-box; padding: 0px 5px; ">82</li><li style="box-sizing: border-box; padding: 0px 5px; ">83</li><li style="box-sizing: border-box; padding: 0px 5px; ">84</li><li style="box-sizing: border-box; padding: 0px 5px; ">85</li><li style="box-sizing: border-box; padding: 0px 5px; ">86</li><li style="box-sizing: border-box; padding: 0px 5px; ">87</li><li style="box-sizing: border-box; padding: 0px 5px; ">88</li><li style="box-sizing: border-box; padding: 0px 5px; ">89</li><li style="box-sizing: border-box; padding: 0px 5px; ">90</li><li style="box-sizing: border-box; padding: 0px 5px; ">91</li><li style="box-sizing: border-box; padding: 0px 5px; ">92</li><li style="box-sizing: border-box; padding: 0px 5px; ">93</li><li style="box-sizing: border-box; padding: 0px 5px; ">94</li><li style="box-sizing: border-box; padding: 0px 5px; ">95</li><li style="box-sizing: border-box; padding: 0px 5px; ">96</li><li style="box-sizing: border-box; padding: 0px 5px; ">97</li><li style="box-sizing: border-box; padding: 0px 5px; ">98</li><li style="box-sizing: border-box; padding: 0px 5px; ">99</li><li style="box-sizing: border-box; padding: 0px 5px; ">100</li><li style="box-sizing: border-box; padding: 0px 5px; ">101</li><li style="box-sizing: border-box; padding: 0px 5px; ">102</li><li style="box-sizing: border-box; padding: 0px 5px; ">103</li><li style="box-sizing: border-box; padding: 0px 5px; ">104</li><li style="box-sizing: border-box; padding: 0px 5px; ">105</li><li style="box-sizing: border-box; padding: 0px 5px; ">106</li><li style="box-sizing: border-box; padding: 0px 5px; ">107</li><li style="box-sizing: border-box; padding: 0px 5px; ">108</li><li style="box-sizing: border-box; padding: 0px 5px; ">109</li><li style="box-sizing: border-box; padding: 0px 5px; ">110</li><li style="box-sizing: border-box; padding: 0px 5px; ">111</li><li style="box-sizing: border-box; padding: 0px 5px; ">112</li><li style="box-sizing: border-box; padding: 0px 5px; ">113</li><li style="box-sizing: border-box; padding: 0px 5px; ">114</li><li style="box-sizing: border-box; padding: 0px 5px; ">115</li><li style="box-sizing: border-box; padding: 0px 5px; ">116</li><li style="box-sizing: border-box; padding: 0px 5px; ">117</li><li style="box-sizing: border-box; padding: 0px 5px; ">118</li><li style="box-sizing: border-box; padding: 0px 5px; ">119</li><li style="box-sizing: border-box; padding: 0px 5px; ">120</li><li style="box-sizing: border-box; padding: 0px 5px; ">121</li><li style="box-sizing: border-box; padding: 0px 5px; ">122</li><li style="box-sizing: border-box; padding: 0px 5px; ">123</li><li style="box-sizing: border-box; padding: 0px 5px; ">124</li><li style="box-sizing: border-box; padding: 0px 5px; ">125</li><li style="box-sizing: border-box; padding: 0px 5px; ">126</li><li style="box-sizing: border-box; padding: 0px 5px; ">127</li><li style="box-sizing: border-box; padding: 0px 5px; ">128</li><li style="box-sizing: border-box; padding: 0px 5px; ">129</li><li style="box-sizing: border-box; padding: 0px 5px; ">130</li><li style="box-sizing: border-box; padding: 0px 5px; ">131</li><li style="box-sizing: border-box; padding: 0px 5px; ">132</li><li style="box-sizing: border-box; padding: 0px 5px; ">133</li><li style="box-sizing: border-box; padding: 0px 5px; ">134</li><li style="box-sizing: border-box; padding: 0px 5px; ">135</li><li style="box-sizing: border-box; padding: 0px 5px; ">136</li><li style="box-sizing: border-box; padding: 0px 5px; ">137</li><li style="box-sizing: border-box; padding: 0px 5px; ">138</li><li style="box-sizing: border-box; padding: 0px 5px; ">139</li><li style="box-sizing: border-box; padding: 0px 5px; ">140</li><li style="box-sizing: border-box; padding: 0px 5px; ">141</li><li style="box-sizing: border-box; padding: 0px 5px; ">142</li><li style="box-sizing: border-box; padding: 0px 5px; ">143</li><li style="box-sizing: border-box; padding: 0px 5px; ">144</li><li style="box-sizing: border-box; padding: 0px 5px; ">145</li><li style="box-sizing: border-box; padding: 0px 5px; ">146</li><li style="box-sizing: border-box; padding: 0px 5px; ">147</li><li style="box-sizing: border-box; padding: 0px 5px; ">148</li><li style="box-sizing: border-box; padding: 0px 5px; ">149</li><li style="box-sizing: border-box; padding: 0px 5px; ">150</li><li style="box-sizing: border-box; padding: 0px 5px; ">151</li><li style="box-sizing: border-box; padding: 0px 5px; ">152</li><li style="box-sizing: border-box; padding: 0px 5px; ">153</li><li style="box-sizing: border-box; padding: 0px 5px; ">154</li><li style="box-sizing: border-box; padding: 0px 5px; ">155</li><li style="box-sizing: border-box; padding: 0px 5px; ">156</li><li style="box-sizing: border-box; padding: 0px 5px; ">157</li><li style="box-sizing: border-box; padding: 0px 5px; ">158</li><li style="box-sizing: border-box; padding: 0px 5px; ">159</li><li style="box-sizing: border-box; padding: 0px 5px; ">160</li><li style="box-sizing: border-box; padding: 0px 5px; ">161</li><li style="box-sizing: border-box; padding: 0px 5px; ">162</li><li style="box-sizing: border-box; padding: 0px 5px; ">163</li><li style="box-sizing: border-box; padding: 0px 5px; ">164</li><li style="box-sizing: border-box; padding: 0px 5px; ">165</li><li style="box-sizing: border-box; padding: 0px 5px; ">166</li><li style="box-sizing: border-box; padding: 0px 5px; ">167</li><li style="box-sizing: border-box; padding: 0px 5px; ">168</li><li style="box-sizing: border-box; padding: 0px 5px; ">169</li><li style="box-sizing: border-box; padding: 0px 5px; ">170</li><li style="box-sizing: border-box; padding: 0px 5px; ">171</li><li style="box-sizing: border-box; padding: 0px 5px; ">172</li><li style="box-sizing: border-box; padding: 0px 5px; ">173</li><li style="box-sizing: border-box; padding: 0px 5px; ">174</li><li style="box-sizing: border-box; padding: 0px 5px; ">175</li><li style="box-sizing: border-box; padding: 0px 5px; ">176</li><li style="box-sizing: border-box; padding: 0px 5px; ">177</li><li style="box-sizing: border-box; padding: 0px 5px; ">178</li><li style="box-sizing: border-box; padding: 0px 5px; ">179</li><li style="box-sizing: border-box; padding: 0px 5px; ">180</li><li style="box-sizing: border-box; padding: 0px 5px; ">181</li><li style="box-sizing: border-box; padding: 0px 5px; ">182</li><li style="box-sizing: border-box; padding: 0px 5px; ">183</li><li style="box-sizing: border-box; padding: 0px 5px; ">184</li><li style="box-sizing: border-box; padding: 0px 5px; ">185</li><li style="box-sizing: border-box; padding: 0px 5px; ">186</li><li style="box-sizing: border-box; padding: 0px 5px; ">187</li><li style="box-sizing: border-box; padding: 0px 5px; ">188</li><li style="box-sizing: border-box; padding: 0px 5px; ">189</li><li style="box-sizing: border-box; padding: 0px 5px; ">190</li><li style="box-sizing: border-box; padding: 0px 5px; ">191</li><li style="box-sizing: border-box; padding: 0px 5px; ">192</li><li style="box-sizing: border-box; padding: 0px 5px; ">193</li><li style="box-sizing: border-box; padding: 0px 5px; ">194</li><li style="box-sizing: border-box; padding: 0px 5px; ">195</li><li style="box-sizing: border-box; padding: 0px 5px; ">196</li><li style="box-sizing: border-box; padding: 0px 5px; ">197</li><li style="box-sizing: border-box; padding: 0px 5px; ">198</li><li style="box-sizing: border-box; padding: 0px 5px; ">199</li><li style="box-sizing: border-box; padding: 0px 5px; ">200</li><li style="box-sizing: border-box; padding: 0px 5px; ">201</li><li style="box-sizing: border-box; padding: 0px 5px; ">202</li><li style="box-sizing: border-box; padding: 0px 5px; ">203</li><li style="box-sizing: border-box; padding: 0px 5px; ">204</li><li style="box-sizing: border-box; padding: 0px 5px; ">205</li><li style="box-sizing: border-box; padding: 0px 5px; ">206</li><li style="box-sizing: border-box; padding: 0px 5px; ">207</li><li style="box-sizing: border-box; padding: 0px 5px; ">208</li><li style="box-sizing: border-box; padding: 0px 5px; ">209</li><li style="box-sizing: border-box; padding: 0px 5px; ">210</li><li style="box-sizing: border-box; padding: 0px 5px; ">211</li><li style="box-sizing: border-box; padding: 0px 5px; ">212</li><li style="box-sizing: border-box; padding: 0px 5px; ">213</li><li style="box-sizing: border-box; padding: 0px 5px; ">214</li><li style="box-sizing: border-box; padding: 0px 5px; ">215</li><li style="box-sizing: border-box; padding: 0px 5px; ">216</li><li style="box-sizing: border-box; padding: 0px 5px; ">217</li><li style="box-sizing: border-box; padding: 0px 5px; ">218</li><li style="box-sizing: border-box; padding: 0px 5px; ">219</li><li style="box-sizing: border-box; padding: 0px 5px; ">220</li><li style="box-sizing: border-box; padding: 0px 5px; ">221</li><li style="box-sizing: border-box; padding: 0px 5px; ">222</li><li style="box-sizing: border-box; padding: 0px 5px; ">223</li><li style="box-sizing: border-box; padding: 0px 5px; ">224</li><li style="box-sizing: border-box; padding: 0px 5px; ">225</li><li style="box-sizing: border-box; padding: 0px 5px; ">226</li><li style="box-sizing: border-box; padding: 0px 5px; ">227</li><li style="box-sizing: border-box; padding: 0px 5px; ">228</li><li style="box-sizing: border-box; padding: 0px 5px; ">229</li></ul>
在loadrunner脚本中进行测试,测试内容如下:
<code class="hljs cpp has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial; ">Action()
{
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span>* s=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"hello"</span>;
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">char</span> a[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">32</span>];
    lr_load_dll(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"D:\\MD5.dll"</span>);
    <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">strcat</span>(a,mymd5(s));  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">//dll中传入一个指针</span>
    lr_output_message(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"%s"</span>,a);
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">return</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box; ">0</span>;
}</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li><li style="box-sizing: border-box; padding: 0px 5px; ">6</li><li style="box-sizing: border-box; padding: 0px 5px; ">7</li><li style="box-sizing: border-box; padding: 0px 5px; ">8</li><li style="box-sizing: border-box; padding: 0px 5px; ">9</li></ul>
运行结果:

运行结果


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值