Connecting Tech Pros Worldwide Help | Site Map

MD5

  #1  
Old September 29th, 2005, 07:25 PM
Thierry
Guest
 
Posts: n/a
Hello,

The function md5 encrypts a string :

md5('hello') --> 5d41402abc4b2a76b9719d911017c592

But how do we uncrypt a md5 string ?

function('5d41402abc4b2a76b9719d911017c592') --> hello

Any help would be welcome.

Titi.
  #2  
Old September 29th, 2005, 07:45 PM
NC
Guest
 
Posts: n/a

re: MD5


Thierry wrote:[color=blue]
>
> The function md5 encrypts a string :[/color]

No, it doesn't. MD5 is not an encryption algorithm, it's a
hashing algorithm. Hashed strings are not supposed to be
"decrypted"; this is not what hashing is for.
[color=blue]
> But how do we uncrypt a md5 string ?[/color]

Since you didn't encrypt the string, you can't decrypt it, either.
The only way to "decrypt" MD5 is to use a dictionary attack; if it
fails, only brute force is left.

Cheers,
NC

  #3  
Old September 29th, 2005, 07:45 PM
Philip Ronan
Guest
 
Posts: n/a

re: MD5


"Thierry" wrote:
[color=blue]
> The function md5 encrypts a string :
> md5('hello') --> 5d41402abc4b2a76b9719d911017c592
>
> But how do we uncrypt a md5 string ?
> function('5d41402abc4b2a76b9719d911017c592') --> hello[/color]

You can't: http://www.googleityoumoron.com/?go=md5

--
phil [dot] ronan @ virgin [dot] net
http://vzone.virgin.net/phil.ronan/


  #4  
Old September 29th, 2005, 07:45 PM
Andy Hassall
Guest
 
Posts: n/a

re: MD5


On Thu, 29 Sep 2005 20:18:58 +0200, Thierry <abuse@microsoft.com> wrote:
[color=blue]
>The function md5 encrypts a string :
>md5('hello') --> 5d41402abc4b2a76b9719d911017c592[/color]

No, it does not encrypt a string. It hashes a string.
[color=blue]
>But how do we uncrypt a md5 string ?
>function('5d41402abc4b2a76b9719d911017c592') --> hello[/color]

You cannot. It is impossible to go back to the original value.

http://en.wikipedia.org/wiki/Md5
http://en.wikipedia.org/wiki/Hash_function
--
Andy Hassall :: andy@andyh.co.uk :: http://www.andyh.co.uk
http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis tool
  #5  
Old September 29th, 2005, 08:05 PM
Thierry
Guest
 
Posts: n/a

re: MD5


Andy Hassall a écrit :[color=blue]
> On Thu, 29 Sep 2005 20:18:58 +0200, Thierry <abuse@microsoft.com> wrote:
>
>[color=green]
>>The function md5 encrypts a string :
>>md5('hello') --> 5d41402abc4b2a76b9719d911017c592[/color]
>
>
> No, it does not encrypt a string. It hashes a string.
>
>[color=green]
>>But how do we uncrypt a md5 string ?
>>function('5d41402abc4b2a76b9719d911017c592') --> hello[/color]
>
>
> You cannot. It is impossible to go back to the original value.[/color]


In this case, what algo should I use ? Is there any
encryption/decryption algo esay to use ?

Titi

  #6  
Old September 29th, 2005, 08:55 PM
Andy Hassall
Guest
 
Posts: n/a

re: MD5


On Thu, 29 Sep 2005 20:54:35 +0200, Thierry <abuse@microsoft.com> wrote:
[color=blue]
>In this case, what algo should I use ? Is there any
>encryption/decryption algo esay to use ?[/color]

There's several, but what are your requirements?
--
Andy Hassall :: andy@andyh.co.uk :: http://www.andyh.co.uk
http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis tool
  #7  
Old September 30th, 2005, 09:35 AM
Stephen Gordon
Guest
 
Posts: n/a

re: MD5


Thierry wrote:[color=blue]
>
>
>
> In this case, what algo should I use ? Is there any
> encryption/decryption algo esay to use ?
>
> Titi
>[/color]

The ROT13 and ROT26 encryption algorithms currently provide the highest
level of security with ease.

Cheers,

Steve
  #8  
Old September 30th, 2005, 10:05 AM
Colin McKinnon
Guest
 
Posts: n/a

re: MD5


Stephen Gordon wrote:
[color=blue]
> Thierry wrote:[color=green]
>>
>> In this case, what algo should I use ? Is there any
>> encryption/decryption algo esay to use ?
>>
>> Titi
>>[/color]
>
> The ROT13 and ROT26 encryption algorithms currently provide the highest
> level of security with ease.
>[/color]

hehe

Are you trying for a job at Adobe, Steve?

OP:
depends what you want to do. Maybe you could use a hash to solve your
problem. Do you want symmetric or asymmetric encryption? How secure do you
want it to be? What platform are you running on? What are you trying to
secure? Whom are you trying to secure it from....

C.
  #9  
Old September 30th, 2005, 10:15 AM
Colin McKinnon
Guest
 
Posts: n/a

re: MD5


NC wrote:
[color=blue]
>
> Since you didn't encrypt the string, you can't decrypt it, either.
> The only way to "decrypt" MD5 is to use a dictionary attack; if it
> fails, only brute force is left.
>[/color]

You can't decrypt it - you can only get colllisions then try to pick the
best candidate - and even then, it will take a ridiculously long time.

C.
  #10  
Old September 30th, 2005, 10:45 AM
R. Rajesh Jeba Anbiah
Guest
 
Posts: n/a

re: MD5


Andy Hassall wrote:[color=blue]
> On Thu, 29 Sep 2005 20:18:58 +0200, Thierry <abuse@microsoft.com> wrote:
>[color=green]
> >The function md5 encrypts a string :
> >md5('hello') --> 5d41402abc4b2a76b9719d911017c592[/color]
>
> No, it does not encrypt a string. It hashes a string.[/color]
<snip>

I presume, your news server is bit lag. (These days, you answer most
of the already answered questions. I don't think, it's intentional as
it is from Andy Hassall:-))

--
<?php echo 'Just another PHP saint'; ?>
Email: rrjanbiah-at-Y!com Blog: http://rajeshanbiah.blogspot.com/

  #11  
Old October 1st, 2005, 12:05 PM
Erwin Kloibhofer
Guest
 
Posts: n/a

re: MD5


i needed to solve the same problem as you just a couple of days ago. first i
tried mcrypt, which is an extension to php, but it is very rarely installed
on php host machines. so i was looking for a php implementation of blowfish,
as it can only be cracked by brute force, hence it is safe.

i have attached the php code at the end of this mail. i do also have a c++
implementation of it should you be interested. usage is as follows:

$blowfish = new BlowFish("provideanarbitrarykey");
$encrypted = $blowfish->encrypt("this is the text you want to encrypt");
$decrypted = $blowfish->decrypt($encrypted);
echo "$encrypted $decrypted\n";

hope that helps.

---------------- BLOWFISH.PHP ------------------

<?php
// PHP implementation of the blowfish algorithm
// taken from http://www.peak.ne.jp/xoops/md/news/...php?storyid=64
// php implementation by gijoe, 2005
// c implementation by paul kocher, 1997
// blowfish algorithm by bruce schneier
// usage:
// $blowfish = new BlowFish("provideanarbitrarykey");
// $encrypted = $blowfish->encrypt("this is the text you want to encrypt");
// $decrypted = $blowfish->decrypt($encrypted);
// echo "$encrypted $decrypted\n";
// -----------------------------------------------------------------------------
class BlowFish
// -----------------------------------------------------------------------------
{
var $N = 16;
var $P = array();
var $S = array();
var $ORIG_P = array
(
0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,
0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,
0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,
0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,
0x9216D5D9, 0x8979FB1B
);
var $ORIG_S = array
(
array
(
0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,
0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,
0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,
0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,
0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,
0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,
0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,
0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,
0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,
0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,
0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,
0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,
0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,
0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,
0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,
0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,
0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,
0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,
0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,
0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,
0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,
0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,
0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,
0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,
0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,
0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,
0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,
0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,
0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,
0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,
0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,
0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,
0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,
0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,
0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,
0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,
0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,
0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,
0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,
0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,
0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,
0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,
0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,
0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,
0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,
0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,
0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,
0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,
0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,
0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,
0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,
0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,
0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,
0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,
0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,
0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,
0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,
0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,
0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,
0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,
0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,
0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,
0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,
0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A
),
array
(
0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,
0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,
0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,
0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,
0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,
0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,
0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,
0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,
0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,
0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,
0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,
0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,
0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,
0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,
0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,
0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,
0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,
0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,
0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,
0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,
0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,
0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,
0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,
0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,
0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,
0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,
0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,
0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,
0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,
0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,
0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,
0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,
0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,
0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,
0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,
0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,
0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,
0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,
0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,
0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,
0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,
0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,
0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,
0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,
0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,
0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,
0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,
0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,
0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,
0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,
0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,
0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,
0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,
0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,
0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,
0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,
0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,
0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,
0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,
0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,
0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,
0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,
0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,
0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7
),
array
(
0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,
0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,
0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,
0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,
0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,
0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,
0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,
0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,
0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,
0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,
0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,
0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,
0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,
0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,
0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,
0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,
0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,
0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,
0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,
0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,
0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,
0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,
0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,
0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,
0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,
0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,
0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,
0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,
0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,
0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,
0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,
0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,
0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,
0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,
0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,
0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,
0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,
0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,
0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,
0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,
0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,
0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,
0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,
0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,
0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,
0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,
0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,
0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,
0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,
0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,
0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,
0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,
0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,
0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,
0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,
0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,
0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,
0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,
0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,
0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,
0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,
0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,
0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,
0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0
),
array
(
0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,
0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,
0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,
0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,
0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,
0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,
0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,
0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,
0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,
0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,
0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,
0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,
0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,
0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,
0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,
0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,
0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,
0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,
0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,
0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,
0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,
0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,
0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,
0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,
0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,
0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,
0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,
0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,
0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,
0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,
0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,
0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,
0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,
0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,
0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,
0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,
0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,
0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,
0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,
0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,
0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,
0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,
0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,
0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,
0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,
0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,
0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,
0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,
0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,
0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,
0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,
0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,
0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,
0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,
0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,
0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,
0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,
0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,
0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,
0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,
0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,
0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,
0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,
0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6
)
);
// -----------------------------------------------------------------------------
function F($x)
// -----------------------------------------------------------------------------
{
$d = ($x & 0xFF);
$x >>= 8;
$c = ($x & 0xFF);
$x >>= 8;
$b = ($x & 0xFF);
$x >>= 8;
$a = ($x & 0xFF);
$y = $this->S[0][$a] + $this->S[1][$b];
$y = $y ^ $this->S[2][$c];
$y = $y + $this->S[3][$d];
return $y;
}
// -----------------------------------------------------------------------------
function Blowfish_Encrypt(&$xl, &$xr)
// -----------------------------------------------------------------------------
{
$X_l = $xl;
$X_r = $xr;
for ($i = 0; $i < $this->N; ++$i)
{
$X_l = $X_l ^ $this->P[$i];
$X_r = $this->F( $X_l ) ^ $X_r;
$temp = $X_l;
$X_l = $X_r;
$X_r = $temp;
}
$temp = $X_l;
$X_l = $X_r;
$X_r = $temp;
$X_r = $X_r ^ $this->P[$this->N];
$X_l = $X_l ^ $this->P[$this->N + 1];
$xl = $X_l;
$xr = $X_r;
}
// -----------------------------------------------------------------------------
function Blowfish_Decrypt(&$xl, &$xr)
// -----------------------------------------------------------------------------
{
$X_l = $xl;
$X_r = $xr;
for ($i = $this->N + 1; $i > 1; --$i)
{
$X_l = $X_l ^ $this->P[$i];
$X_r = $this->F( $X_l) ^ $X_r;
// Exchange $X_l and $X_r
$temp = $X_l;
$X_l = $X_r;
$X_r = $temp;
}
// Exchange $X_l and $X_r
$temp = $X_l;
$X_l = $X_r;
$X_r = $temp;
$X_r = $X_r ^ $this->P[1];
$X_l = $X_l ^ $this->P[0];
$xl = $X_l;
$xr = $X_r;
}

function Blowfish_Init($key ,$keyLen)
{
$this->S = $this->ORIG_S ;
$j = 0;
for ($i = 0; $i < $this->N + 2; ++$i)
{
$data = 0x00000000;
for ($k = 0; $k < 4; ++$k)
{
$data = ($data << 8) | ord($key[$j]);
$j = $j + 1;
if ($j >= $keyLen)
$j = 0;
}
$this->P[$i] = $this->ORIG_P[$i] ^ $data;
}
$datal = 0x00000000;
$datar = 0x00000000;
for ($i = 0; $i < $this->N + 2; $i += 2)
{
$this->Blowfish_Encrypt($datal, $datar);
$this->P[$i] = $datal;
$this->P[$i + 1] = $datar;
}
for ($i = 0; $i < 4; ++$i)
{
for ($j = 0; $j < 256; $j += 2)
{
$this->Blowfish_Encrypt($datal, $datar);
$this->S[$i][$j] = $datal;
$this->S[$i][$j + 1] = $datar;
}
}
}
// -----------------------------------------------------------------------------
function BlowFish($key)
// -----------------------------------------------------------------------------
{
$this->Blowfish_Init($key, strlen($key));
}
// -----------------------------------------------------------------------------
function encrypt($str)
// -----------------------------------------------------------------------------
{
$ret = '';
for ($i = 0 ;$i < strlen( $str ); $i += 8)
{
$x0 = isset( $str[$i] ) ? ord( $str[$i] ) : 0;
$x1 = isset( $str[$i+1] ) ? ord( $str[$i+1] ) : 0;
$x2 = isset( $str[$i+2] ) ? ord( $str[$i+2] ) : 0;
$x3 = isset( $str[$i+3] ) ? ord( $str[$i+3] ) : 0;
$x4 = isset( $str[$i+4] ) ? ord( $str[$i+4] ) : 0;
$x5 = isset( $str[$i+5] ) ? ord( $str[$i+5] ) : 0;
$x6 = isset( $str[$i+6] ) ? ord( $str[$i+6] ) : 0;
$x7 = isset( $str[$i+7] ) ? ord( $str[$i+7] ) : 0;
$xl = $x0 * 16777216 + $x1 * 65536 + $x2 * 256 + $x3;
$xr = $x4 * 16777216 + $x5 * 65536 + $x6 * 256 + $x7;
$this->Blowfish_Encrypt($xl, $xr);
$ret .= sprintf("%08x%08x", $xl, $xr);
}
return $ret ;
}
// -----------------------------------------------------------------------------
function decrypt($str)
// -----------------------------------------------------------------------------
{
$ret = '';
while (strlen($str))
{
$xl = hexdec(substr($str, 0, 8));
$xr = hexdec(substr($str, 8, 8));
$str = substr($str, 16);
$this->Blowfish_Decrypt($xl, $xr);
$x0 = chr( $xl >> 24 );
$x1 = chr( ( $xl >> 16 ) & 0x000000ff );
$x2 = chr( ( $xl >> 8 ) & 0x000000ff );
$x3 = chr( $xl & 0x000000ff );
$x4 = chr( $xr >> 24 );
$x5 = chr( ( $xr >> 16 ) & 0x000000ff );
$x6 = chr( ( $xr >> 8 ) & 0x000000ff );
$x7 = chr( $xr & 0x000000ff );
$ret .= $x0 . $x1 . $x2 . $x3 . $x4 . $x5 . $x6 . $x7;
}
return str_replace("\0", '', $ret);
}
}
?>


  #12  
Old October 2nd, 2005, 03:45 PM
Thierry
Guest
 
Posts: n/a

re: MD5


Andy Hassall a écrit :[color=blue]
> On Thu, 29 Sep 2005 20:54:35 +0200, Thierry <abuse@microsoft.com> wrote:
>
>[color=green]
>>In this case, what algo should I use ? Is there any
>>encryption/decryption algo esay to use ?[/color]
>
>
> There's several, but what are your requirements?[/color]

I do not really need so much. It's a small personal webapp... The
easiest would be the best.
Closed Thread


Similar Threads
Thread Thread Starter Forum Replies Last Post
MD5 conversion problem Peter Afonin answers 15 November 18th, 2005 06:12 PM
md5 in C Amir Hadi answers 3 November 14th, 2005 10:32 AM
MD5 module Pythonicity Leandro Lameiro answers 1 October 15th, 2005 07:45 AM
Lost password + MD5 ? frizzle answers 27 September 7th, 2005 06:35 PM
crypt() and md5() answers 3 July 17th, 2005 12:39 AM