MD5 Summe

Kann mir jemand mal folgenden PHP-Code in C# für ASP.NET übersetzten???

$mein\_string="hallo, walther";
$md5=md5($mein\_string);

(Speichert den MD5 Hash von der Variablen „mein_string“ in die Variable „md5“. „md5“ ist eine stringvariable.)

Vielen Dank
Gruß Thomas

hi thomas,

ich hab neulich was zu dem thema im web gefunden (autor unbekannt), allerdings nicht in c# für asp.net sondern in jscript. alles einfachster code und gut in c# zu portieren.

trotzdem interessiert?

gruß
konsti

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ich hab neulich was zu dem thema im web gefunden (autor
unbekannt), allerdings nicht in c# für asp.net sondern in
jscript. alles einfachster code und gut in c# zu portieren.

Kannst mir den Link mal Posten :smile:

Danke

okey dokey :wink:

den link hab ich nicht mehr, aber der quellcode ist hier:


language: jscript

function: string calcMD5(string)
description: return the md5 hash of a string

'------------------------------------------------------------------------------------------------
'------------------------------------------------------------------------------------------------

function array(n) {
for(i=0;i=0) {
a=a%0x80000000;
a>>=b;
a+=0x40000000>>(b-1);
} else
a>>=b;
return a;
}

function shl1(a) {
a=a%0x80000000;
if (a&0x40000000==0x40000000)
{
a-=0x40000000;
a*=2;
a+=0x80000000;
} else
a*=2;
return a;
}

function shl(a,b) {
a=integer(a);
b=integer(b);
for (var i=0;i**=0)
if (t2>=0)
return ((t1&t2)+0x80000000);
else
return (t1&b);
else
if (t2>=0)
return (a&t2);
else
return (a&b);
}

function or(a,b) {
a=integer(a);
b=integer(b);
var t1=(a-0x80000000);
var t2=(b-0x80000000);
if (t1>=0)
if (t2>=0)
return ((t1|t2)+0x80000000);
else
return ((t1|b)+0x80000000);
else
if (t2>=0)
return ((a|t2)+0x80000000);
else
return (a|b);
}

function xor(a,b) {
a=integer(a);
b=integer(b);
var t1=(a-0x80000000);
var t2=(b-0x80000000);
if (t1>=0)
if (t2>=0)
return (t1^t2);
else
return ((t1^b)+0x80000000);
else
if (t2>=0)
return ((a^t2)+0x80000000);
else
return (a^b);
}

function not(a) {
a=integer(a);
return (0xffffffff-a);
}

/* Here begin the real algorithm */

var state = new array(4);
var count = new array(2);
count[0] = 0;
count[1] = 0;
var buffer = new array(64);
var transformBuffer = new array(16);
var digestBits = new array(16);

var S11 = 7;
var S12 = 12;
var S13 = 17;
var S14 = 22;
var S21 = 5;
var S22 = 9;
var S23 = 14;
var S24 = 20;
var S31 = 4;
var S32 = 11;
var S33 = 16;
var S34 = 23;
var S41 = 6;
var S42 = 10;
var S43 = 15;
var S44 = 21;

function F(x,y,z) {
return or(and(x,y),and(not(x),z));
}

function G(x,y,z) {
return or(and(x,z),and(y,not(z)));
}

function H(x,y,z) {
return xor(xor(x,y),z);
}

function I(x,y,z) {
return xor(y ,or(x , not(z)));
}

function rotateLeft(a,n) {
return or(shl(a, n),(shr(a,(32 - n))));
}

function FF(a,b,c,d,x,s,ac) {
a = a+F(b, c, d) + x + ac;
a = rotateLeft(a, s);
a = a+b;
return a;
}

function GG(a,b,c,d,x,s,ac) {
a = a+G(b, c, d) +x + ac;
a = rotateLeft(a, s);
a = a+b;
return a;
}

function HH(a,b,c,d,x,s,ac) {
a = a+H(b, c, d) + x + ac;
a = rotateLeft(a, s);
a = a+b;
return a;
}

function II(a,b,c,d,x,s,ac) {
a = a+I(b, c, d) + x + ac;
a = rotateLeft(a, s);
a = a+b;
return a;
}

function transform(buf,offset) {
var a=0, b=0, c=0, d=0;
var x = transformBuffer;

a = state[0];
b = state[1];
c = state[2];
d = state[3];

for (i = 0; i = 63) {
transform(buffer, 0);
}
}

function finish() {
var bits = new array(8);
var padding;
var i=0, index=0, padLen=0;

for (i = 0; i ?@ABCDEFGHIJKLMNOPQRSTUVWXYZ" + „[\]^_`abcdefghijklmnopqrstuvwxyz{|}~“;

function calcMD5(entree)
{
var l,s,k,ka,kb,kc,kd;

init();
for (k=0;k[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]**