簡體   English   中英

嘗試將原始字節存儲在我的一個Python腳本文件中

[英]Trying to store raw bytes inside my one Python script file

我目前正在研究一個Python腳本,該腳本將能夠隱藏其內部的所有二進制文件。 它通過從目標文件中讀取所有二進制數據,然后將其存儲在自身內部的列表中來進行此操作。 然后,它將刪除該文件以將其隱藏。

這是我的問題:當我將讀取的字節存儲在腳本文件中時,Python抱怨說它不是UTF-8代碼。 這是我讀取的原始數據的一個小示例:

ßëM€€Ê yQtm×ßü«WTª¼É[–±Ê

如何存儲這些字節而不破壞腳本? 我想我可以將每個字節存儲為一個代碼點,以便解釋器接受它。 但是,如何告訴write()-I / O函數將字節寫為代碼點呢?

您應該對二進制文件進行編碼-例如,使用base64封裝-將字節轉換為“合法字符”。 然后,當您需要二進制信息時,可以將其轉換回去。

有關某些代碼示例,請參見此先前問題

一個簡單的示例,可以幫助您開始:

# assume your bytes came from a file:
bytesIneed = bytearray([234,232,231,188,122,132,145])
import base64

bytesConverted = base64.b64encode(bytesIneed)

print "encoded string: "
print bytesConverted

bytesRecovered = base64.b64decode(bytesConverted)

print "decoded binary: "
for c in bytesRecovered: print(ord(c))

這將返回以下輸出:

encoded string:
6ujnvHqEkQ==
decoded binary:
234
232
231
188
122
132
145

如您所見-字符串6ujnvHqEkQ==可以存儲在任何地方; 解碼功能將其轉換為所需的二進制數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM