Bits einlesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
microkernel
User
Beiträge: 271
Registriert: Mittwoch 10. Juni 2009, 17:27
Wohnort: Frankfurt
Kontaktdaten:

Moin :)
Ich möchte gerne eine Datei verschlüsseln. Dafür muss ich eine Datei so einlesen, sodass ich nur die Bits der Datei besitze.
... Wie kann ich das machen?


Liebe Grüße,
microkernel
BlackJack

@microkernel: Die Beschreibung ist unzureichend. Nimm einfach die `read()`-Methode auf Dateiobjekten. Damit bekommst Du „Zeichen“ketten, welche die Bytewerte enthalten. Damit hast Du auch die Bits, denn Bytes bestehen ja aus Bits.
Benutzeravatar
microkernel
User
Beiträge: 271
Registriert: Mittwoch 10. Juni 2009, 17:27
Wohnort: Frankfurt
Kontaktdaten:

BlackJack hat geschrieben:Damit hast Du auch die Bits, denn Bytes bestehen ja aus Bits.
Ich bin nicht blöd... Also wäre diese Funktion eine mögliche Lösung, um die Bits einer Datei einzulesen:

Code: Alles auswählen

def read_bits(filename):
    out = str()
    with open(filename, "rb") as fp:
        for char in fp.read():
            out += bin(ord(char))[2:]
    return out
    
deets

Kann ja sein, dass du nicht bloed bist - aber das was du da machst ist definitiv nicht sinnvoll. Denn wenn du was verschluesseln willst, dann helfen dir deine Bit-Strings ueberhaupt nix.

Wie waere es, wenn du uns mal erzaehlst was du ueberhaupt genau machen willst mit deinen ganzen Bits?
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Als Bytestring eingelesen, hast Du doch die Bytes. :roll:
Mit bin() umgewandelt, erhältst Du einen String, der die Bitposition als 1/0-Char darstellt, wobei er mit der ersten 1 beginnt und Dir führende Nullen verloren gehen. Daher führt Deine Variante nicht zur Bitfolge der Bytefolge.

Welches Verfahren willst Du denn umsetzen? Je nach Verfahren, werden doch in der Regel Bytes bzw. Blöcke von Bytes verarbeitet. Und da bist Du mit dem Bytestring näher dran als mit Deinem "Bitstring".
Antworten