How to convert as string into MD5 Hash
Hope you all are doing well. Recently I was trying to convert a string into an md5 hash but I'm unable to do so. I have also tried to copy OpenBullet md5 has function here it is
Public Function encryptToMD5(input As Byte()) As Byte() Dim m As MD5 = System.Security.Cryptography.MD5.Create Return m.ComputeHash(input) End Function
But when I passed this string "952b4412f002315aa50751032fcaab03" & currentTimeInUnix it is showing me error that long can not be converted to byte. kindly help me if you know the solution.
If you want a string to string hashing you have to do something like this
King_Kong last edited by King_Kong
@Ruri I have already used this function
Shared Function GetHash(theInput As String) As String Using hasher As MD5 = MD5.Create() ' create hash object ' Convert to byte array and get hash Dim dbytes As Byte() = hasher.ComputeHash(Encoding.UTF8.GetBytes(theInput)) ' sb to create string from bytes Dim sBuilder As New StringBuilder() ' convert byte data to hex string For n As Integer = 0 To dbytes.Length - 1 sBuilder.Append(dbytes(n).ToString("X2")) Next n Return sBuilder.ToString() End Using End Function
But the result isn't the same as OB that's why I think it's not giving me the right hash.
it looks like this
but in OB it same string look like this
It should work exactly the same. Anyways OB's function wants a byte array and outputs a byte array so you need to convert using
Encoding.UTF8.GetBytes(yourString)and then pass it to the function, which will return another byte array. Then you need to convert it again to a hex string (I made a ToHex() string extension)
I have made that function that you used in OB
Public Function toHex(bytes As Byte()) As String Dim sb = New StringBuilder(bytes.Length * 2) For Each b As Byte In bytes sb.Append(b.ToString("X2")) Next Return sb.ToString() End Function
And here how I'm using this
Dim currentTimeInUnix = ToUnixTimeSeconds(DateTime.Now.ToString("yyyy-MM-dd hh:mm:dd")) Dim baseString As String = "952b4412f002315aa50751032fcaab03" & currentTimeInUnix Dim rawInput = Encoding.UTF8.GetBytes(baseString) Dim digest As Byte() = encryptToMD5(rawInput) TextBox3.Text = toHex(digest)
But when I use this hash in OB it says invalid hash that's mean both hashes are different.
Kindly help me I'm stuck here
Br4uN last edited by Br4uN
Hey mate here is a piece of code that you could use to convert string To MD5 Hash I didn't made it I just did the homework for you
Sub Main() Dim StrToHash As String StrToHash = "MyStringToHash" Dim md5Obj As New Security.Cryptography.MD5CryptoServiceProvider Dim bytesToHash() As Byte = System.Text.Encoding.ASCII.GetBytes(StrToHash) bytesToHash = md5Obj.ComputeHash(bytesToHash) Dim strResult As String = "" For Each b As Byte In bytesToHash StrResult += b.ToString("x2") Next Console.Write(StrResult) End Sub
@Br4uN thanks, nice job