[VB.NET] String Encryption

11/27/2011 20:54 Shar0xX#1
Ich bin an folgenden VB.NET Code gekommen den ich nachvollziehen muss:

PHP Code:
Public Shared Function Encrypt(ByVal input As String) As String
    Dim expressionStack_6_0 
As Integer 1
    
If (expressionStack_6_0 0Then
    End 
If
    
Dim s As String "lkirwf897+22#bbtrm8814z5qq=498j5"
    
Dim str2 As String "741952hheeyy66#cs!9hjv887mxx7@8y"
    
Dim managed As New RijndaelManaged With _
        
.Padding PaddingMode.Zeros_
        
.Mode CipherMode.CBC_
        
.KeySize = &H100_
        
.BlockSize = &H100 _
    
}
    
Dim bytes As Byte() = Encoding.ASCII.GetBytes(s)
    
Dim rgbIV As Byte() = Encoding.ASCII.GetBytes(str2)
    
Dim transform As ICryptoTransform managed.CreateEncryptor(bytesrgbIV)
    
Dim stream2 As New MemoryStream
    Dim stream 
As New CryptoStream(stream2transformCryptoStreamMode.Write)
    
Dim buffer As Byte() = Encoding.ASCII.GetBytes(input)
    
stream.Write(buffer0buffer.Length)
    
stream.FlushFinalBlock
    
Return Convert.ToBase64String(stream2.ToArray)
End Function 
Kann sein dass das Ganze nicht ganz stimmig ist, da der Code disassembled wurde. Ich will das Ganze in auf eine andere Sprache übertragen, allerdings kann ich kein VB.NET und habs zur Zeit auch nicht installiert.
Laut google handelt es sich um AES (Rijndael) 256 Bit.

Allerdings werden hier 2 encryption Keys verwendet, das verstehe ich nicht & besonderns diese Zeile, in der aus beiden irgendwie einer gemacht wird:

"managed.CreateEncryptor(bytes, rgbIV)"

Kann mir jemand der sich mit VB.NET auskennt, erklären was da genau gemacht wird?
11/28/2011 00:01 warfley#2
dabei handelt es sich um eine aes verschlüsselung, die kannst du aber nicht so einfach in eine andere sprache umschreiben, da das .net die ganze verschlüsselung übernimmt

Advanced Encryption Standard

da sind libs für alle möglichen sprachen zur ver/entschlüsselung von aes
11/28/2011 19:38 vwap#3
Rijndael ist nicht AES.

Ist eine Rijndael Verschlüsselung. Wird auch in vielen anderen Sprachen mitgeliefert (z.B. PHP). Einfach mal Googlen.
11/28/2011 22:13 Shar0xX#4
So, da ich jetzt schon bemerkt hab, dass das ganze ziemlich aussichtslos is, hab ich mich mehr schlecht als recht einer einfachen Lösung bedient :D
VB.NET installiert > Console Application > Code rein > über Commandline String übergeben > Encrypted ausgeben. Das ganze lese ich dann mit meinem Hauptprogramm aus.

Fertig :D