Yesterday's post was surprisingly difficult to compose. Here I was, presented with all of the code from an "open source" system that Taka's company purchased, and completely unable to compress its quality into the short bit we're all used to seeing. I decided to limit myself to just the encryption module, but even that was too saturated for a single post. Here's another function I came across from the code that I felt deserved its own post ...
Function AddHex(hex1, hex2) 'Adds two 8-digit hexadecimals Dim h1, h2, h3, d1, d2, d3, i, c 'longer one first If Len(hex1) > Len(hex2) Then h1 = hex1 h2 = hex2 Else h1 = hex2 h2 = hex1 End If 'pad the second For i = 0 to Len(h1) If Len(h1) > Len(h2) Then h2 = "0" & h2 End If Next 'add the hex For i = Len(h1) To 1 Step -1 d1 = hex2dec(Mid(h1,i,1)) d2 = hex2dec(Mid(h2,i,1)) 'ED: See Quantum Computering for ' hex2dec implementation d3 = d1 + d2 'add carryover If c > 0 Then d3 = d3 + c c = 0 End If 'carryover If d3 > 15 Then c = 1 d3 = d3 - 16 End If h3 = dec2hex(d3) & h3 'ED: See Quantum Computering and use your ' immagination for how dec2hex works Next 'final carryover If c > 0 Then h3 = "1" & h3 'trim / resize h3 = Right(h3,16) For i = Len(h3) to 15 h3 = "0" & h3 Next AddHex = h3 End Function
I should note that I'm still at a complete loss for why these "hexadecimal strings" were used throughout the module ...
UPDATE: I just wanted to confirm what this was doing for those non-VBScript users. Given two "hexadecimals," this will start at rightmost character, convert each char to an int, add the ints together, convert the result back into hex, and concatenate it to the resulting string.