ดูเหมือนว่าข้อผิดพลาดเกิดจากการใช้ฟังก์ชัน `os.path.isfile()` กับตัวแปร `message` ซึ่งมีค่าที่ไม่ถูกต้อง เนื่องจากมี null character ฝังอยู่ในเส้นทางที่ระบุ
จาก Traceback ที่คุณให้มา ข้อความที่คุณพยายามจะเข้ารหัสเป็น PDF และดูเหมือนว่าการใช้งานฟังก์ชัน `pgpy.PGPMessage.new()` ผิดพลาดเมื่อพยายามสร้างข้อความ PGP จากข้อมูลไฟล์ PDF
ให้ตรวจสอบวิธีการอ่านข้อมูลจากไฟล์ PDF ก่อนว่าทำได้ถูกต้องหรือไม่ โดยปกติแล้ว คุณควรเปิดไฟล์ในโหมด binary ('rb') แทนที่จะเป็นโหมด text ('r') เนื่องจาก PDF เป็นไฟล์ไบนารี
นี่คือตัวอย่างคร่าว ๆ ในการใช้ PGP ในการเข้ารหัสไฟล์ PDF:
โค้ด: เลือกทั้งหมด
python
import pgpy
# ตั้งค่าที่อยู่ของไฟล์
pdf_file_path = "path/to/your/file.pdf"
# อ่านไฟล์ PDF ในโหมดไบนารี
with open(pdf_file_path, "rb") as pdf_file:
data = pdf_file.read()
# สร้าง PGP message จากข้อมูลที่อ่านมา
message = pgpy.PGPMessage.new(data, file=True)
# โหลด public key ที่จะใช้เข้ารหัส
public_key, _ = pgpy.PGPKey.from_file("path/to/public_key.asc")
# เข้ารหัสข้อความด้วย public key
encrypted_message = public_key.encrypt(message)
# บันทึกข้อความที่เข้ารหัสลงไฟล์
with open("path/to/encrypted_file.pgp", "w") as enc_file:
enc_file.write(str(encrypted_message))
โปรดตรวจสอบว่า:
1. เส้นทางไฟล์ถูกต้อง
2. Public key ถูกต้องและนำเข้ามาถูกต้อง
3. การเปิดไฟล์ PDF นั้นเปิดในโหมดไบนารี ('rb')
ลองดูว่าโค้ดนี้ช่วยแก้ปัญหาได้หรือไม่ หากยังมีปัญหาอยู่ โปรดให้ข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้โค้ดว่าทำงานอย่างไร