解决方案 »
- (讨论)开发一个中小型门户网站需要多长时间
- ASP.net 如何做到无刷新上传文件,即不用 <asp:FileUpload ID="FUl" runat="server" />件
- MVC 3.0 Actionlink 问题,新手请教各位大神
- 动态模板列取值问题(分不够可以再加)
- ifrrame嵌套FileUpload传值问题
- 怎样将一个ASP.NET控件从当前位置移动到另一个<TD>里边
- asp.net中listbox控件怎么获得它的多选值?????
- 谁见过拿ASP.NET做出来的认为最人性化和最花的网站呢.网址贴出来看看.
- 水晶报表显示有问题,请指点指点,谢谢!
- 帮忙,把这段代码转成C#的
- asp.net模板引擎怎么在html页里用js获取后台传回来的值
- 关于EF的对于Sql自动生成字段的处理
namespace Edu.GateWay
{
public class HmacMD5
{
private const uint a = 7u;
private const uint b = 12u;
private const uint c = 17u;
private const uint d = 22u;
private const uint e = 5u;
private const uint f = 9u;
private const uint g = 14u;
private const uint h = 20u;
private const uint i = 4u;
private const uint j = 11u;
private const uint k = 16u;
private const uint l = 23u;
private const uint m = 6u;
private const uint n = 10u;
private const uint o = 15u;
private const uint p = 21u;
private uint[] q;
private uint[] r;
private byte[] s;
private byte[] t;
private static byte[] u;
public HmacMD5()
{
this.q = new uint[2];
this.r = new uint[4];
this.s = new byte[64];
this.t = new byte[16];
this.init();
}
public void init()
{
if (true)
{
}
this.q[0] = 0u;
this.q[1] = 0u;
this.r[0] = 1732584193u;
this.r[1] = 4023233417u;
this.r[2] = 2562383102u;
this.r[3] = 271733878u;
}
public void update(byte[] data, uint length)
{
switch (0)
{
case 0:
IL_0E:
while (true)
{
uint num = length;
uint num2 = this.q[0] >> 3 & 63u;
uint num3 = length << 3;
uint num4 = 0u;
bool flag = length > 0u;
int num5 = 6;
while (true)
{
uint arg_2D5_0;
uint num7;
switch (num5)
{
case 0:
goto IL_B4;
case 1:
if (!flag)
{
num5 = 13;
continue;
}
goto IL_1F8;
case 2:
goto IL_FD;
case 3:
num5 = 15;
continue;
case 4:
{
uint num6 = 64u - num2;
num5 = 9;
continue;
}
case 5:
if (!flag)
{
if (true)
{
}
num5 = 16;
continue;
}
Buffer.BlockCopy(data, (int)num4, this.s, 0, 64);
this.a(this.s);
num4 += 64u;
num -= 64u;
num5 = 2;
continue;
case 6:
if (!flag)
{
num5 = 11;
continue;
}
this.q[0] += num3;
this.q[1] += length >> 29;
flag = (this.q[0] >= num3);
num5 = 1;
continue;
case 7:
arg_2D5_0 = 64u - num2;
goto IL_2D5;
case 8:
return;
case 9:
if (num2 + length <= 64u)
{
num5 = 3;
continue;
}
num5 = 7;
continue;
case 10:
goto IL_1F8;
case 11:
num5 = 20;
continue;
case 12:
Buffer.BlockCopy(data, (int)num4, this.s, 0, (int)num);
num5 = 22;
continue;
case 13:
this.q[1] += 1u;
num5 = 10;
continue;
case 14:
if (!flag)
{
num5 = 18;
continue;
}
this.a(this.s);
num4 += num7;
num -= num7;
num5 = 0;
continue;
case 15:
arg_2D5_0 = length;
goto IL_2D5;
case 16:
flag = (num <= 0u);
num5 = 19;
continue;
case 17:
if (!flag)
{
num5 = 4;
continue;
}
goto IL_B4;
case 18:
num5 = 8;
continue;
case 19:
if (!flag)
{
num5 = 12;
continue;
}
return;
case 20:
return;
case 21:
goto IL_FD;
case 22:
return;
}
break;
IL_B4:
num5 = 21;
continue;
IL_FD:
flag = (num >= 64u);
num5 = 5;
continue;
IL_1F8:
flag = (num2 <= 0u);
num5 = 17;
continue;
IL_2D5:
num7 = arg_2D5_0;
Buffer.BlockCopy(data, 0, this.s, (int)num2, (int)num7);
flag = (num2 + num7 >= 64u);
num5 = 14;
}
}
return;
}
goto IL_0E;
}
public byte[] finalize()
{
switch (0)
{
case 0:
{
IL_0E:
byte[] result;
while (true)
{
byte[] data = new byte[8];
this.a(ref data, this.q, 8u);
uint num = this.q[0] >> 3 & 63u;
int num2 = 1;
while (true)
{
uint arg_9B_0;
bool flag;
int num3;
switch (num2)
{
case 0:
goto IL_108;
case 1:
if (num >= 56u)
{
num2 = 5;
continue;
}
num2 = 8;
continue;
case 2:
return result;
case 3:
goto IL_108;
case 4:
result = this.t;
num2 = 2;
continue;
case 5:
num2 = 6;
continue;
case 6:
arg_9B_0 = 120u - num;
goto IL_9B;
case 7:
if (!flag)
{
num2 = 4;
continue;
}
this.s[num3] = 0;
num3++;
num2 = 0;
continue;
case 8:
arg_9B_0 = 56u - num;
goto IL_9B;
}
break;
IL_9B:
uint length = arg_9B_0;
this.update(HmacMD5.u, length);
this.update(data, 8u);
this.a(ref this.t, this.r, 16u);
num3 = 0;
num2 = 3;
continue;
IL_108:
flag = (num3 < 64);
if (true)
{
}
num2 = 7;
}
}
return result;
}
}
goto IL_0E;
}
public string md5String()
{
switch (0)
{
case 0:
{
IL_0E:
string result;
while (true)
{
string text = "";
int num = 0;
int num2 = 0;
while (true)
{
bool flag;
switch (num2)
{
case 0:
goto IL_4C;
case 1:
goto IL_4C;
case 2:
if (!flag)
{
num2 = 4;
continue;
}
text += this.t[num].ToString("x2");
num++;
if (true)
{
}
num2 = 1;
continue;
case 3:
return result;
case 4:
result = text;
num2 = 3;
continue;
}
break;
IL_4C:
flag = (num < this.t.Length);
num2 = 2;
}
}
return result;
}
}
goto IL_0E;
}
{
switch (0)
{
case 0:
IL_0E:
while (true)
{
uint num = this.r[0];
uint num2 = this.r[1];
uint num3 = this.r[2];
uint num4 = this.r[3];
uint[] array = new uint[16];
this.a(ref array, A_0, 64u);
this.d(ref num, num2, num3, num4, array[0], 7u, 3614090360u);
this.d(ref num4, num, num2, num3, array[1], 12u, 3905402710u);
this.d(ref num3, num4, num, num2, array[2], 17u, 606105819u);
this.d(ref num2, num3, num4, num, array[3], 22u, 3250441966u);
this.d(ref num, num2, num3, num4, array[4], 7u, 4118548399u);
this.d(ref num4, num, num2, num3, array[5], 12u, 1200080426u);
this.d(ref num3, num4, num, num2, array[6], 17u, 2821735955u);
this.d(ref num2, num3, num4, num, array[7], 22u, 4249261313u);
this.d(ref num, num2, num3, num4, array[8], 7u, 1770035416u);
this.d(ref num4, num, num2, num3, array[9], 12u, 2336552879u);
this.d(ref num3, num4, num, num2, array[10], 17u, 4294925233u);
this.d(ref num2, num3, num4, num, array[11], 22u, 2304563134u);
this.d(ref num, num2, num3, num4, array[12], 7u, 1804603682u);
this.d(ref num4, num, num2, num3, array[13], 12u, 4254626195u);
this.d(ref num3, num4, num, num2, array[14], 17u, 2792965006u);
this.d(ref num2, num3, num4, num, array[15], 22u, 1236535329u);
this.c(ref num, num2, num3, num4, array[1], 5u, 4129170786u);
this.c(ref num4, num, num2, num3, array[6], 9u, 3225465664u);
this.c(ref num3, num4, num, num2, array[11], 14u, 643717713u);
this.c(ref num2, num3, num4, num, array[0], 20u, 3921069994u);
this.c(ref num, num2, num3, num4, array[5], 5u, 3593408605u);
this.c(ref num4, num, num2, num3, array[10], 9u, 38016083u);
this.c(ref num3, num4, num, num2, array[15], 14u, 3634488961u);
this.c(ref num2, num3, num4, num, array[4], 20u, 3889429448u);
this.c(ref num, num2, num3, num4, array[9], 5u, 568446438u);
this.c(ref num4, num, num2, num3, array[14], 9u, 3275163606u);
this.c(ref num3, num4, num, num2, array[3], 14u, 4107603335u);
this.c(ref num2, num3, num4, num, array[8], 20u, 1163531501u);
this.c(ref num, num2, num3, num4, array[13], 5u, 2850285829u);
this.c(ref num4, num, num2, num3, array[2], 9u, 4243563512u);
this.c(ref num3, num4, num, num2, array[7], 14u, 1735328473u);
this.c(ref num2, num3, num4, num, array[12], 20u, 2368359562u);
this.b(ref num, num2, num3, num4, array[5], 4u, 4294588738u);
this.b(ref num4, num, num2, num3, array[8], 11u, 2272392833u);
this.b(ref num3, num4, num, num2, array[11], 16u, 1839030562u);
this.b(ref num2, num3, num4, num, array[14], 23u, 4259657740u);
this.b(ref num, num2, num3, num4, array[1], 4u, 2763975236u);
this.b(ref num4, num, num2, num3, array[4], 11u, 1272893353u);
this.b(ref num3, num4, num, num2, array[7], 16u, 4139469664u);
this.b(ref num2, num3, num4, num, array[10], 23u, 3200236656u);
this.b(ref num, num2, num3, num4, array[13], 4u, 681279174u);
this.b(ref num4, num, num2, num3, array[0], 11u, 3936430074u);
this.b(ref num3, num4, num, num2, array[3], 16u, 3572445317u);
this.b(ref num2, num3, num4, num, array[6], 23u, 76029189u);
this.b(ref num, num2, num3, num4, array[9], 4u, 3654602809u);
this.b(ref num4, num, num2, num3, array[12], 11u, 3873151461u);
this.b(ref num3, num4, num, num2, array[15], 16u, 530742520u);
this.b(ref num2, num3, num4, num, array[2], 23u, 3299628645u);
this.a(ref num, num2, num3, num4, array[0], 6u, 4096336452u);
this.a(ref num4, num, num2, num3, array[7], 10u, 1126891415u);
this.a(ref num3, num4, num, num2, array[14], 15u, 2878612391u);
this.a(ref num2, num3, num4, num, array[5], 21u, 4237533241u);
this.a(ref num, num2, num3, num4, array[12], 6u, 1700485571u);
this.a(ref num4, num, num2, num3, array[3], 10u, 2399980690u);
this.a(ref num3, num4, num, num2, array[10], 15u, 4293915773u);
this.a(ref num2, num3, num4, num, array[1], 21u, 2240044497u);
this.a(ref num, num2, num3, num4, array[8], 6u, 1873313359u);
this.a(ref num4, num, num2, num3, array[15], 10u, 4264355552u);
this.a(ref num3, num4, num, num2, array[6], 15u, 2734768916u);
this.a(ref num2, num3, num4, num, array[13], 21u, 1309151649u);
this.a(ref num, num2, num3, num4, array[4], 6u, 4149444226u);
this.a(ref num4, num, num2, num3, array[11], 10u, 3174756917u);
this.a(ref num3, num4, num, num2, array[2], 15u, 718787259u);
this.a(ref num2, num3, num4, num, array[9], 21u, 3951481745u);
this.r[0] += num;
this.r[1] += num2;
this.r[2] += num3;
this.r[3] += num4;
int num5 = 0;
int num6 = 1;
while (true)
{
bool flag;
switch (num6)
{
case 0:
goto IL_6C6;
case 1:
goto IL_6A2;
case 2:
goto IL_6A2;
case 3:
if (!flag)
{
num6 = 0;
continue;
}
array[num5] = 0u;
num5++;
num6 = 2;
continue;
}
break;
IL_6A2:
flag = (num5 < 16);
num6 = 3;
}
}
IL_6C6:
if (true)
{
}
return;
}
goto IL_0E;
}
private void a(ref byte[] A_0, uint[] A_1, uint A_2)
{
while (true)
{
bool flag = !BitConverter.IsLittleEndian;
int num = 1;
while (true)
{
uint num3;
switch (num)
{
case 0:
num = 7;
continue;
case 1:
{
if (!flag)
{
num = 11;
continue;
}
uint num2 = 0u;
num3 = 0u;
if (true)
{
}
num = 3;
continue;
}
case 2:
goto IL_195;
case 3:
goto IL_164;
case 4:
goto IL_195;
case 5:
{
if (!flag)
{
num = 10;
continue;
}
uint num2;
A_0[(int)((UIntPtr)num3)] = (byte)(A_1[(int)((UIntPtr)num2)] & 255u);
A_0[(int)((UIntPtr)(num3 + 1u))] = (byte)(A_1[(int)((UIntPtr)num2)] >> 8 & 255u);
A_0[(int)((UIntPtr)(num3 + 2u))] = (byte)(A_1[(int)((UIntPtr)num2)] >> 16 & 255u);
A_0[(int)((UIntPtr)(num3 + 3u))] = (byte)(A_1[(int)((UIntPtr)num2)] >> 24 & 255u);
num2 += 1u;
num3 += 4u;
num = 2;
continue;
}
return;
case 7:
return;
case 8:
goto IL_164;
case 9:
{
if (!flag)
{
num = 0;
continue;
}
uint num2;
A_0[(int)((UIntPtr)(num3 + 3u))] = (byte)(A_1[(int)((UIntPtr)num2)] & 255u);
A_0[(int)((UIntPtr)(num3 + 2u))] = (byte)(A_1[(int)((UIntPtr)num2)] >> 8 & 255u);
A_0[(int)((UIntPtr)(num3 + 1u))] = (byte)(A_1[(int)((UIntPtr)num2)] >> 16 & 255u);
A_0[(int)((UIntPtr)num3)] = (byte)(A_1[(int)((UIntPtr)num2)] >> 24 & 255u);
num2 += 1u;
num3 += 4u;
num = 8;
continue;
}
case 10:
num = 6;
continue;
case 11:
{
uint num2 = 0u;
num3 = 0u;
num = 4;
continue;
}
}
break;
IL_164:
flag = (num3 < A_2);
num = 9;
continue;
IL_195:
flag = (num3 < A_2);
num = 5;
}
}
}
private void a(ref uint[] A_0, byte[] A_1, uint A_2)
{
while (true)
{
bool flag = !BitConverter.IsLittleEndian;
int num = 5;
while (true)
{
uint num3;
switch (num)
{
case 0:
num = 4;
continue;
case 1:
{
if (!flag)
{
num = 9;
continue;
}
uint num2;
A_0[(int)((UIntPtr)num2)] = (uint)((int)A_1[(int)((UIntPtr)num3)] | (int)A_1[(int)((UIntPtr)(num3 + 1u))] << 8 | (int)A_1[(int)((UIntPtr)(num3 + 2u))] << 16 | (int)A_1[(int)((UIntPtr)(num3 + 3u))] << 24);
num2 += 1u;
num3 += 4u;
num = 3;
continue;
}
case 2:
{
uint num2 = 0u;
num3 = 0u;
num = 8;
continue;
}
case 3:
goto IL_13B;
case 4:
return;
case 5:
{
if (!flag)
{
num = 2;
continue;
}
uint num2 = 0u;
num3 = 0u;
num = 7;
continue;
}
case 6:
if (true)
{
}
goto IL_10A;
case 7:
goto IL_10A;
case 8:
goto IL_13B;
case 9:
num = 10;
continue;
case 10:
return;
case 11:
{
if (!flag)
{
num = 0;
continue;
}
uint num2;
A_0[(int)((UIntPtr)num2)] = (uint)((int)A_1[(int)((UIntPtr)(num3 + 3u))] | (int)A_1[(int)((UIntPtr)(num3 + 2u))] << 8 | (int)A_1[(int)((UIntPtr)(num3 + 1u))] << 16 | (int)A_1[(int)((UIntPtr)num3)] << 24);
num2 += 1u;
num3 += 4u;
num = 6;
continue;
}
}
break;
IL_10A:
flag = (num3 < A_2);
num = 11;
continue;
IL_13B:
flag = (num3 < A_2);
num = 1;
}
}
}
private uint a(uint A_0, uint A_1)
{
uint result = A_0 << (int)A_1 | A_0 >> (int)(32u - A_1);
if (true)
{
}
return result;
}
private uint d(uint A_0, uint A_1, uint A_2)
{
if (true)
{
}
return (A_0 & A_1) | (~A_0 & A_2);
}
private uint c(uint A_0, uint A_1, uint A_2)
{
uint result = (A_0 & A_2) | (A_1 & ~A_2);
if (true)
{
}
return result;
}
private uint b(uint A_0, uint A_1, uint A_2)
{
return A_0 ^ A_1 ^ A_2;
}
private uint a(uint A_0, uint A_1, uint A_2)
{
if (true)
{
}
return A_1 ^ (A_0 | ~A_2);
}
private void d(ref uint A_0, uint A_1, uint A_2, uint A_3, uint A_4, uint A_5, uint A_6)
{
if (true)
{
}
A_0 += this.d(A_1, A_2, A_3) + A_4 + A_6;
A_0 = this.a(A_0, A_5) + A_1;
}
private void c(ref uint A_0, uint A_1, uint A_2, uint A_3, uint A_4, uint A_5, uint A_6)
{
if (true)
{
}
A_0 += this.c(A_1, A_2, A_3) + A_4 + A_6;
A_0 = this.a(A_0, A_5) + A_1;
}
private void b(ref uint A_0, uint A_1, uint A_2, uint A_3, uint A_4, uint A_5, uint A_6)
{
if (true)
{
}
A_0 += this.b(A_1, A_2, A_3) + A_4 + A_6;
A_0 = this.a(A_0, A_5) + A_1;
}
private void a(ref uint A_0, uint A_1, uint A_2, uint A_3, uint A_4, uint A_5, uint A_6)
{
if (true)
{
}
A_0 += this.a(A_1, A_2, A_3) + A_4 + A_6;
A_0 = this.a(A_0, A_5) + A_1;
}
static HmacMD5()
{
// Note: this type is ed as 'beforefieldinit'.
byte[] array = new byte[64];
array[0] = 128;
HmacMD5.u = array;
}
}
}