DC LockToKey
Posted: Sat Jun 03, 2006 7:22 am
I will try to make a DC client, but I need help with creating a key:
http://www.dcpp.net/wiki/index.php/LockToKey
Would be nice if anyone add PB to that list
I played around...
http://www.dcpp.net/wiki/index.php/LockToKey
Would be nice if anyone add PB to that list
I played around...
Code: Select all
Procedure.s LockToKey(lock.s)
len.l = Len(lock)
Dim key.l(len) ; -1
;key(0) = ord(lock{0}) ^ ord(lock{len-1}) ^ ord(lock{len-2}) ^ 5
key(0) = Asc(Mid(lock,1,1)) XOr Asc(Mid(lock,len-2,1)) XOr Asc(Mid(lock,len-3,1)) XOr 5
For i=1 To len
key(i) = ( Asc(Mid(lock,i+1,1)) XOr Asc(Mid(lock,i+1,1)) )
Next
For i=0 To len
key(i) = ( (key(i)<<4) & 240) | ((key(i)>>4) & 15 )
Next
;key = array_map('chr',key)
Dim key2.s(len)
For i=0 To len
key2(i) = Chr(key(i))
Next
For i=0 To len
Select key2(i)
Case Chr(0) : key2(i) = "/%DCN000%/"
Case Chr(5) : key2(i) = "/%DCN005%/"
Case Chr(36) : key2(i) = "/%DCN036%/"
Case Chr(96) : key2(i) = "/%DCN096%/"
Case Chr(124): key2(i) = "/%DCN124%/"
Case Chr(126): key2(i) = "/%DCN126%/"
EndSelect
Next
;key2 = implode('',key2)
string.s
For i=0 To Len
string + key2(i)
Next
ProcedureReturn string
EndProcedure
MessageRequester("",LockToKey("EXTENDEDPROTOCOLABCABCABCABCABCABC")) ; Pk=DCPLUSPLUS0.242ABCABC"))