最近做接口测试,需要对请求参数进行加密,使用的是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>
运行结果: