Date: 2014-04-11 13:00 (UTC)
Cisco Type 7 - очень примитивная штука. Первые две цифры пароля - десятичное смещение в таблице. Далее выбирай из таблицы, применяй XOR и будет тебе ASCII. Вот тебе вариант на Visual Basic (он немного более хитропопый, чем у Cisco - позволяет читать таблицу и в обратную сторону)


' Decrypt the string
'
Function Decrypt(strSource As String, intMethod As Integer) As String
Dim strInputString As String, lLen As Long

On Error GoTo TheDecErrorHandler

' Check input
strInputString = Trim(strSource)
lLen = Len(strInputString)
' The string shall be at least four characters long and must have even number of characters
If lLen < 4 Or lLen Mod 2 <> 0 Then
    Decrypt = ""
    Exit Function
End If

' Only 0 (left -> right and 1 (right <- left) are allowed
If intMethod <> 0 Then intMethod = 1

' Hash Table
Dim strHexHash() As String, lLastHashNum As Long
strHexHash = Split("0x64,0x73,0x66,0x64,0x3b,0x6b,0x66,0x6f,0x41,0x2c,0x2e,0x69,0x79,0x65,0x77,0x72,0x6b,0x6c,0x64,0x4a,0x4b,0x44,0x48,0x53,0x55,0x42,0x73,0x67,0x76,0x63,0x61,0x36,0x39,0x38,0x33,0x34,0x6e,0x63,0x78,0x76,0x39,0x38,0x37,0x33,0x32,0x35,0x34,0x6b,0x3b,0x66,0x67,0x38,0x37", ",")

lLastHashNum = UBound(strHexHash)

' Index - must be Numeric and Dec
Dim strIndex As String, lIdx As Long

strIndex = Mid(strInputString, 1, 2)
If Not IsNumeric(strIndex) Then
    Decrypt = ""
    Exit Function
End If

lIdx = CLng(strIndex)

' Index must fit the array
If lIdx < 0 Or lIdx > lLastHashNum Then
    Decrypt = ""
    Exit Function
End If

' Decrypt
Dim strOutputString As String, l As Long, strSourceChar As String, intChar As Integer, intHash As Integer, intXORChar As Integer, strDestChar As String

For l = 3 To lLen Step 2
    
    ' Source char
    strSourceChar = Mid(strInputString, l, 2)
    
    ' Dec character
    intChar = CInt("&H" & strSourceChar)
    
    ' Hash from the array
    intHash = CInt(Replace(strHexHash(lIdx), "0x", "&H"))
    
    ' XOR
    intXORChar = intChar Xor intHash
    
    ' Dest character
    strDestChar = Chr(intXORChar)
    
    strOutputString = strOutputString & strDestChar
    
    ' Move around the hash table
    If intMethod = 0 Then
        lIdx = lIdx + 1
        If lIdx > lLastHashNum Then lIdx = 0
    Else
        lIdx = lIdx - 1
        If lIdx < 0 Then lIdx = lLastHashNum
    End If
    
Next l

Decrypt = strOutputString
Exit Function

TheDecErrorHandler:
Decrypt = ""
End Function

This account has disabled anonymous posting.
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

Profile

dadv: (Default)
Choose your future

July 2024

M T W T F S S
12 34567
891011121314
15161718192021
22232425262728
293031    

Tags

Style Credit

Powered by Dreamwidth Studios