2015-09-25 26 views
4

我想開始學習編寫加密算法,所以在使用python時我試圖將數據操縱到二進制級別,所以我可以將數據添加到數據的末尾以及操縱以隱藏數據。在Python中操作字節到二進制級別

我對編程並不陌生我實際上是一名程序員,但我對python比較陌生,這就是爲什麼我掙扎了一下。

任何人都可以告訴我最好的方式來操縱,在Python中,一個字符串下降到二進制級別(或建議以什麼方式,我應該這樣做)。我已經看過了一些問題:

Convert string to binary in python

Manipulating binary data in Python

Convert binary to ASCII and vice versa

但所有這些都不是我所期待的,我不知道足夠的蟒蛇是能夠挑出我需要的東西。有人可以幫我提供詳細信息(如果你使用函數,請解釋它是什麼,例如ord())

+0

你使用的是什麼python版本?字符串是一個抽象。確保你瞭解編碼是什麼以及它是如何工作的。見[本教程](http://farmdev.com/talks/unicode/)和[這一個](http://www.diveintopython3.net/strings.html) – Pynchia

+0

我使用3.5,是的,我明白如何編碼工作,不要擔心。我主要是一個PHP和MySQL開發人員編碼是我存在的禍根 – TheHidden

回答

2

看看bitstring模塊,該模塊旨在使二進制操作儘可能簡單。

from bitstring import BitArray 
a = BitArray('0xfeed') # 16 bits from hex 
a += '0b001'    # Add three binary bits 
a.replace('0b111', '0b0') # Search and replace 
a.count(1)    # Count one bits 

它有一個完整的manual和大量的例子。

+0

我得到的結果返回爲3和5(5在計數)爲什麼這是? 3我猜測是更換了x = n個實例嗎? – TheHidden

+0

是3是完成的替換次數。隨時嘗試'a.bin'查看二進制表示。 –

2

bitarray允許您將位序列視爲正常的Python序列,並將它們作爲二進制值操作。

>>> bitarray.bitarray('0101') | bitarray.bitarray('1010') 
bitarray('1111')