Changing all the passwords of all accounts in your server store method.
[normal to md5]
Currently there are two types of JoinServers released. One that works with MD5 hashed passwords and one that works with normal alphanumeric passwords. Since its not possible to convert a md5 hash to its original varchar string, I am going to explain how to make it the other way around.

Originally Posted by
What is MD5?
In cryptography, MD5 (Message-Digest algorithm 5) is a widely-used cryptographic hash function with a 128-bit hash value. As an Internet standard (RFC 1321), MD5 has been employed in a wide variety of security applications, and is also commonly used to check the integrity of files.
Why do people use MD5 hashed passwords?
- Hell should i know ? They just do, usually its required for security measures, in case 'the big bad hacker' sneaks by the back door and gets into your database, but little does he know that you use md5 and he can't leech any useful info:harhar:.
-------------
Why the hell did i created this guide? (Sup, don't this guy have better things to do?)
- You are reading it so....
Here we go.. Open the MSSQL Query Analyzer
- We make sure that we have the WZ_MD5_MOD.dll in the /Tools/Binn/ directory of our Microsoft SQL Server.
- Creating the Extended md5 Stored Procedures to the Master DB
Code:
use Master
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[XP_MD5_CheckValue]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[XP_MD5_CheckValue]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
exec sp_addextendedproc N'XP_MD5_CheckValue', N'WZ_MD5_MOD.dll'
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[XP_MD5_EncodeKeyVal]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[XP_MD5_EncodeKeyVal]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
exec sp_addextendedproc N'XP_MD5_EncodeKeyVal', N'WZ_MD5_MOD.dll'
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
- Backup your database. If you mess it up i'll never hear the end of it!
- Now we create a field in the MEMB_INFO table to store passwords in (temporary)
Code:
use MuOnline
alter table memb_info add temphash varbinary(17);
- The key function that will make our dreams come true ^^ (haven't tested it..wrote it here)
Code:
DECLARE @hash binary(16),
@myvarpass varchar(10),
@accid varchar(10);
DECLARE mytest SCROLL CURSOR FOR SELECT memb___id,memb__pwd FROM MEMB_INFO
OPEN mytest
FETCH NEXT FROM mytest INTO @accid, @myvarpass;
while (@@fetch_status = 0) BEGIN
EXEC master..XP_MD5_EncodeKeyVal @myvarpass, @accid, @hash OUT;
UPDATE MEMB_INFO SET temphash = @hash WHERE memb___id = @accid;
FETCH NEXT FROM mytest INTO @accid, @myvarpass;
END
CLOSE mytest
DEALLOCATE mytest
- Now lets change the type of the memb__pwd column.
Code:
alter table memb_info drop column memb__pwd;
alter table memb_info add memb__pwd varbinary(17);
- And now for the coup de grace.
Code:
update memb_info set memb__pwd=temphash;
alter table memb_info drop column temphash;
- Sup? I want answers !
I get all the credits for this cuz i'm a greedy MOFO. Sue me !!
p.s. got l33t ?