• Welcome to Valhalla Legends Archive.
 

SC Cd Keys

Started by ~Mike~, March 23, 2006, 02:24 PM

Previous topic - Next topic

~Mike~

Whats the difference between an invalid key and Keys that can't hash?

UserLoser


~Mike~

Yes I do, 1. when i plug in 3804540653077 it says "[4:18:13 PM] [BNET] Your CD key was rejected, it may be invalid", but when i plug in 3804540653070 i get " [4:21:07 PM] [BNET] Your CD-key is invalid!" .
2.When i use my key tester it seperates the keys into muted, non muted, invalid, voided, Couldnt Hash, and Banned. Whats the Couldnt Hash mean.

Eternal

I think you need to ask the author of that keytester Mike. 'Couldn't Hash' is not a term that will make sense to anyone other than the person who coded it and decided to give it that name.
^-----silly Brit
-----------------------------
www.brimd.com

Joe[x86]

Anything can hash into XSHA1. You're probably not using a very good keytester if they didn't know that.
Quote from: brew on April 25, 2007, 07:33 PM
that made me feel like a total idiot. this entire thing was useless.

~Mike~

#5
Oh, well thanks for the input :)

You know how you get ip'd from bnet with 1 invalid test? Well when you use the "unhashable" keys it dont ipban you. It jsut dont make sense.

Hdx

Quote from: ~Mike~ on March 23, 2006, 03:22 PM
Yes I do, 1. when i plug in 3804540653077 it says "[4:18:13 PM] [BNET] Your CD key was rejected, it may be invalid", but when i plug in 3804540653070 i get " [4:21:07 PM] [BNET] Your CD-key is invalid!" .
2.When i use my key tester it seperates the keys into muted, non muted, invalid, voided, Couldnt Hash, and Banned. Whats the Couldnt Hash mean.
Thats cuz the 1st key is invalid.
You cant jsut change the last digety and BOOM new cdkey. It's way more complex than that. Also, if you do change the last diget, you make the cdkey invalid.
Poke
The 1st cdkey dosent pass the Checksum algorythem, witch is why BNET rejects it, but the 2nd one does, with is why BNET jsut says its invalid, (maby wrong product?) insted of rejecting it.

VB Code I used to test it:
Private Sub Form_Load()
Debug.Print Checksum("3804540653077")
Debug.Print Checksum("3804540653070")
End Sub
Public Function Checksum(ByVal CDKey As String) As Boolean
Dim TheChecksum As Long, i As Byte
TheChecksum = 3
For i = 1 To 12
  TheChecksum = TheChecksum + ((Asc(Mid(CDKey, i, 1)) - &H30) Xor (TheChecksum * 2))
Next i
TheChecksum = TheChecksum Mod 10
If Asc(Mid(CDKey, 13, 1)) <> (TheChecksum + &H30) Then
  Checksum = False
  Exit Function
End If
Checksum = True
End Function

~-~(HDX)~-~

Proud host of the JBLS server www.JBLS.org.
JBLS.org Status:
JBLS/BNLS Server Status

~Mike~