Solved

SHA512 hash question

Posted on 2013-06-13
8
336 Views
Last Modified: 2013-06-14
Hi Experts, I am trying to hash some text to but not getting the same result as expected.

THis is my code

Public Function EncryptSHA512Managed(ByVal ClearString As String) As String
        Dim uEncode As New UnicodeEncoding()
        Dim bytClearString() As Byte = uEncode.GetBytes(ClearString)
        Dim sha As New  _
        System.Security.Cryptography.SHA512Managed()
        Dim hash() As Byte = sha.ComputeHash(bytClearString)
        Return Convert.ToBase64String(hash)
    End Function

Open in new window


The text I am hashing is

764553644921011000000http://www.westernmall.co.uk/test/response.aspxFF8F097D1DE0EFC14DE92F65085DED46A796BDFA900AAD1BE0E86ECE8F5B234052843A0754FE27F07E63A3649FD8121329FBAB4F0D7924557C59122BCD4BF13F

Open in new window


And I am expecting

148182038CB072F341FEDF2B9597B6CBF15A2EB01BD98CA6F890B0F60245281DA5AA970E141C2549C2DCA5626AD6E371920C4B72AA54AE98D48AFFA41C8E8798

Open in new window


But I am getting

XKpoFOELiceDiQQFXTnTixDQqTIl/X32nZdb+lp68fSqUK7CeW83kIj89/QOAWW7m+bYnAzceaCnCr5I7rkzDA==

Open in new window


What could I be doing wrong?
0
Comment
Question by:takwirirar
  • 6
  • 2
8 Comments
 
LVL 1

Author Comment

by:takwirirar
ID: 39244562
Ok just checked again and I need to return a HEX
0
 
LVL 42

Accepted Solution

by:
sedgwick earned 500 total points
ID: 39244591
to convert byte array to hex u can use this:
var hex = BitConverter.ToString(byteArray).Replace("-","");

Open in new window

or
StringBuilder sb = new StringBuilder(ba.Length * 2);
foreach (byte b in ba)
{
       sb.AppendFormat("{0:x2}", b)
}

var hex = sb.ToString();

Open in new window

0
 
LVL 1

Author Comment

by:takwirirar
ID: 39244605
This is the new code but I am now getting

    Protected Sub Button4_Click(sender As Object, e As System.EventArgs) Handles Button4.Click
        EncryptSHA512Managed("764553644921011000000http://www.westernmall.co.uk/test/response.aspxFF8F097D1DE0EFC14DE92F65085DED46A796BDFA900AAD1BE0E86ECE8F5B234052843A0754FE27F07E63A3649FD8121329FBAB4F0D7924557C59122BCD4BF13F")
    End Sub
    Public Function EncryptSHA512Managed(ByVal ClearString As String) As String
        Dim uEncode As New UnicodeEncoding()
        Dim bytClearString() As Byte = uEncode.GetBytes(ClearString)
        Dim sha As New  _
        System.Security.Cryptography.SHA512Managed()
        Dim hash() As Byte = sha.ComputeHash(bytClearString)
        Dim hex = BitConverter.ToString(hash).Replace("-", "")
        Response.Write(hex)
    End Function

Open in new window


5CAA6814E10B89C7838904055D39D38B10D0A93225FD7DF69D975BFA5A7AF1F4AA50AEC2796F379088FCF7F40E0165BB9BE6D89C0CDC79A0A70ABE48EEB9330C

Open in new window

0
 
LVL 42

Expert Comment

by:sedgwick
ID: 39244626
try this:
    Protected Sub Button4_Click(sender As Object, e As System.EventArgs) Handles Button4.Click
        EncryptSHA512Managed("764553644921011000000http://www.westernmall.co.uk/test/response.aspxFF8F097D1DE0EFC14DE92F65085DED46A796BDFA900AAD1BE0E86ECE8F5B234052843A0754FE27F07E63A3649FD8121329FBAB4F0D7924557C59122BCD4BF13F")
    End Sub

    Public Function EncryptSHA512Managed(ByVal ClearString As String) As String
        Dim bytClearString() As Byte = GetBytes(ClearString)
        Dim sha As New  _
        System.Security.Cryptography.SHA512Managed()
        Dim hash() As Byte = sha.ComputeHash(bytClearString)
        Dim hex = BitConverter.ToString(hash).Replace("-", "")
        Response.Write(hex)
    End Function

Private Function GetBytes(str As String) As Byte()
	Dim bytes As Byte() = New Byte(str.Length * 2 - 1) {}
	System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length)
	Return bytes
End Function

Open in new window

0
Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

 
LVL 1

Author Comment

by:takwirirar
ID: 39245081
That brings out the same result starting with 5C...
0
 
LVL 1

Author Comment

by:takwirirar
ID: 39247278
I found a site that converts the text fine. What could be the difference?
0
 
LVL 1

Author Comment

by:takwirirar
ID: 39247284
Ok I have sussed it. I had to convert the byte to be hashed to UTF8 first

Dim bytClearString() As Byte = Encoding.UTF8.GetBytes((ClearString))

Open in new window

0
 
LVL 1

Author Closing Comment

by:takwirirar
ID: 39247287
Thanks to sedgwick!
0

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my asp.net applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
IntroductionWhile developing web applications, a single page might contain many regions and each region might contain many number of controls with the capability to perform  postback. Many times you might need to perform some action on an ASP.NET po…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now