Laden...

Python-Code nach C# übersetzen?

Erstellt von Nachtwind vor 15 Jahren Letzter Beitrag vor 15 Jahren 3.044 Views
N
Nachtwind Themenstarter:in
118 Beiträge seit 2005
vor 15 Jahren
Python-Code nach C# übersetzen?
#!/usr/bin/env python

import binascii
import base64 
from Crypto.Cipher import AES
import sys

# 8C 35 19 2D 96 4D C3 18 2C 6F 84 F3 25 22 39 EB 4A 32 0D 25

infile = sys.argv[1]
Key = binascii.unhexlify('8C35192D964DC3182C6F84F3252239EB4A320D2500000000')

IV = binascii.unhexlify('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
IV_Cipher = AES.new(Key,AES.MODE_ECB)
IV = IV_Cipher.encrypt(IV)

obj = AES.new(Key,AES.MODE_CFB,IV)

rsdf = open(infile,'r')

data = rsdf.read()
data = binascii.unhexlify(''.join(data.split()))
data = data.splitlines()


for link in data:
    link = base64.b64decode(link)
    link = obj.decrypt(link)
    print link.replace('CCF: ','')

rsdf.close()

Da ich leider kaum Ahnung von Cryptography und praktisch keine Python Erfahrung habe, komme ich mit diesem Code absolut niocht klar..

Hat jemand eine Idee, wie man das in C# uebersetzt bekommt?

Gelöschter Account
vor 15 Jahren

wie wäre es denn wenn du für kryptografie die frameworkklassen verwendest, die dafür erschaffen wurden?

N
Nachtwind Themenstarter:in
118 Beiträge seit 2005
vor 15 Jahren

daran sitz ich schon den ganzen abend - aber ich bekomme das ganze absolut nicht hin.. wie gesagt, verstehe wenig von crypto und noch wen iger von Python - und da weis ich zT auch leider absolut nicht, was die entsprechungen von .Net funktionen sind...

*edit* das ist das, was ich im Moment als Code habe:

        {

            //byte[] key = Convert.ToByte("8C35192D964DC3182C6F84F3252239EB4A320D2500000000");
            // 8C35192D964DC3182C6F84F3252239EB4A320D25 

            //byte[] iv = HexToBytes("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");
            // FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 
            Rijndael rij = Rijndael.Create();      
            
            int discarded;
            rij.Key = Encoding.UTF8.GetBytes("8C35192D964DC3182C6F84F3252239EB4A320D25");
            rij.IV = Encoding.UTF8.GetBytes("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");
            rij.Mode = CipherMode.ECB;

            
            ICryptoTransform ct;
            MemoryStream ms;
            CryptoStream cs;
            byte[] byt;
            ct = rij.CreateEncryptor(rij.Key, rij.IV);
            byt = Encoding.UTF8.GetBytes(rtfLinks.Text);
            ms = new MemoryStream();
            cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
            cs.Write(byt, 0, byt.Length);
            cs.FlushFinalBlock();
            cs.Close();
            rtfLinks.Text = Convert.ToBase64String(ms.ToArray());
   
        }

Im Moment jammert der Debugger nur, dass der Key eine unpassende Laenge hat..