我正在使用Python中的DES算法。Python二進制字符串轉換
在其中一個功能即Fiestle函數中,我必須使用XOR元素來獲取密碼。
是否有任何方式我可以執行在python換檔操作,下面是我嘗試的代碼:
C0是1111000011001100101010101111
D0是0101010101100110011110001111
c0_d0=[]
for i in range(1):
t=[]
t.append(C0)
t.append(D0)
c0_d0.append(t)
#print c0_d0
def str_to_bin(strr,shifts):
for i in range(1,17):
temp=[]
for j in range(1):
temp.append(int(c0_d0[i-1][0])<<1)
temp.append(int(c0_d0[i-1][1])<<1)
c0_d0.append(temp)
return c0_d0
我想要的元素是一個二進制的字符串,通過移位bits.That是第一個元素對是通過移動前一個元素對獲得的,下一個元素對是由前一個元素獲得的,等等。只給出第0個索引元素。
例 C0是1111000011001100101010101111 D0是0101010101100110011110001111
C1應該C0 < < 1,其等於1110000110011001010101011110
D1應D0 < < 1,其等於1010101011001100111100011110
你想轉移一個二進制字符串?我想大小是28位(你沒有指定大小,在Python中你不能依賴於int內部表示)。在這種情況下,試試這個:'C1 = C0 [1:] +「0」'。但是你的問題真的不清楚。 –
要執行二進制操作,請使用整數或字節數組(有效地整數列表)。使用字符串操作既不舒適也不有效。 –