Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีเข้ารหัสและถอดรหัสข้อมูลใน Python


แนะนำตัว

การเข้ารหัสคืออะไร? การเข้ารหัสเกี่ยวข้องกับการแปลงข้อความธรรมดาเป็นข้อความเข้ารหัสซึ่งเรียกว่าการเข้ารหัสข้อมูลและข้อความเข้ารหัสกลับเป็นข้อความธรรมดาซึ่งเรียกว่าการถอดรหัสข้อมูล

เราจะใช้ โมดูลเฟิร์น ในแพ็คเกจการเข้ารหัสเพื่อเข้ารหัสและถอดรหัสข้อมูลโดยใช้ Python ขณะใช้โมดูลเฟอร์เน็ต คีย์เฉพาะจะถูกสร้างขึ้นโดยที่คุณไม่สามารถอ่านหรือจัดการข้อมูลที่เข้ารหัสได้

เมื่อคุณรู้แล้วว่าเราจะจัดการกับอะไร มาเริ่มกันเลย

เริ่มต้นใช้งาน

โมดูลการเข้ารหัสไม่ได้มาพร้อมกับ Python ซึ่งหมายความว่าคุณจะต้องติดตั้งโดยใช้ pip package manager โดยเปิดเทอร์มินัลแล้วพิมพ์รหัสด้านล่าง

pip ติดตั้งการเข้ารหัส

เมื่อคุณดาวน์โหลดและติดตั้งแพ็คเกจแล้ว คุณสามารถนำเข้าโมดูลได้

เราจะใช้โมดูล fernet เพื่อเข้ารหัสและถอดรหัสข้อมูล ให้เรานำเข้ามาไว้ในสคริปต์ Python

จาก cryptography.fernet นำเข้า Fernet

หมายเหตุ − ตรวจสอบให้แน่ใจว่าคุณใช้ตัวพิมพ์ใหญ่ถูกต้อง

คุณพร้อมที่จะเริ่มเขียนสคริปต์ของคุณแล้ว

กำลังสร้างคีย์

ในการเริ่มเข้ารหัสข้อมูล ก่อนอื่นคุณต้องสร้าง fernet key .

คีย์ =Fernet.generate_key()f =Fernet(คีย์)

ในบรรทัดข้างต้น เราสร้างคีย์โดยใช้เมธอด create_key() แล้วกำหนดคีย์นั้นให้กับตัวแปร "f" ในบรรทัดถัดไป

เพียงเท่านี้ คุณก็จะมีคีย์ที่จัดเก็บไว้ในตัวแปรที่พร้อมใช้งาน

เราสามารถพิมพ์คีย์และเก็บไว้ได้หากต้องการ อย่าลืมใช้ฟังก์ชันถอดรหัสขณะพิมพ์

พิมพ์(key.decode())

ผลลัพธ์

Bq64GE−−93K1RVro4go1frN−8twBSvXdbCPSPLIKz9U=

การเข้ารหัสข้อมูล

ในการเข้ารหัสข้อมูลจากคีย์ด้านบน คุณต้องใช้วิธีการเข้ารหัส

encrypted_data =f.encrypt(b"ข้อความนี้กำลังถูกเข้ารหัสและไม่สามารถมองเห็นได้!")

และนั่นคือทั้งหมด ประโยคด้านบนได้รับการเข้ารหัสแล้ว

หากต้องการดูข้อความที่เข้ารหัสของคุณ คุณต้องพิมพ์ข้อความนั้น

พิมพ์(เข้ารหัส_data)

ผลลัพธ์

b'gAAAAABgILy91p_wqMntdT3mDkh0IBXSLjuBMQAfnGZAFkZCX1U6Q7TU2PthgFBwVz0QbKXpuNTHRzAgbdDV4zfuuzkGCXqVD--xJdkTycQH2iurct'lUrCtxJdkTycQH2iurCtxUrCtxJdkTycQH2iurCtxUrcTycQH2iurCt4 

หมายเหตุ − เรามี b ก่อนประโยคเพื่อแปลงเป็นรูปแบบไบต์ คุณสามารถเลือกใช้วิธี encode() แทนได้เช่นกัน

ถอดรหัสข้อมูล

ตอนนี้คุณมีข้อความเข้ารหัสแล้ว มาดูกันว่าเราจะเปลี่ยนกลับเป็นข้อความที่อ่านง่ายได้อย่างไร

เราสามารถถอดรหัสได้โดยใช้วิธีการถอดรหัสในโมดูล fernet

decrypted_data =f.decrypt(encrypted_data) # f คือตัวแปรที่มีค่าของ key.print(decrypted_data)

ผลลัพธ์

b'ข้อความนี้กำลังถูกเข้ารหัสและไม่สามารถมองเห็นได้!'

หมายเหตุ − หากคุณดูที่ผลลัพธ์ข้างต้น คุณจะสังเกตได้ว่ามี b' ก่อนข้อความธรรมดาที่พิมพ์ นี่เป็นเพราะข้อมูลที่เข้ารหัสจะถูกแปลงกลับเป็นรูปแบบไบต์ เพื่อให้ได้เฉพาะข้อความธรรมดา เราจำเป็นต้องใช้ฟังก์ชันถอดรหัส

พิมพ์(decrypted_data.decode())

ผลลัพธ์

ข้อความนี้กำลังถูกเข้ารหัสและไม่สามารถมองเห็นได้!

หมายเหตุ - คุณสามารถเข้ารหัสและถอดรหัสข้อมูลโดยใช้คีย์เดียวกัน นั่นคือถ้าคุณพิมพ์ค่าของคีย์และบันทึก คุณสามารถใช้คีย์เดียวกันโดยกำหนดให้กับตัวแปร ตัวอย่าง −>

f =Fernet(Bq64GE--93K1RVro4go1frN-8twBSvXdbCPSPLIKz9U=) # ค่าของคีย์จริงจะได้รับ

ตัวอย่าง

จาก cryptography.fernet นำเข้า Fernetkey =Fernet.generate_key()print("Key :", key.decode())f =Fernet(key)encrypted_data =f.encrypt(b"ข้อความนี้กำลังถูกเข้ารหัสและไม่สามารถ เห็นแล้ว!")print("หลังจากการเข้ารหัส:", encrypted_data)decrypted_data =f.decrypt(encrypted_data)print(decrypted_data)print("หลังจากถอดรหัส:", decrypted_data.decode())

ผลลัพธ์

 สำคัญ:u4dM7xw8sNNU3Rm_lwDbixudWSeaM0Z4TTDdQNKsouI =หลังจากการเข้ารหัส:b'gAAAAABgIL3_qbfM_oMgQn653gpk6a7hqxXiR0dl0vrmOmqnr5b6MqrsjGkK1IknxMLLtOCq6_YlX4x3nBedbZqtCqy4os55pttrl-pBO6-dJf6kVP50IpIaKSXbpAsuWl4h_2o_E-4YEqZ5kkgxWrwnqojmkMyuSQ =='ข้อความ b'This จะถูกเข้ารหัสและไม่สามารถเห็นได้!' หลังจากการถอดรหัสลับ:ข้อความนี้จะถูกเข้ารหัสและไม่สามารถเห็นได้  

บทสรุป

ตอนนี้คุณได้เรียนรู้การเข้ารหัสและถอดรหัสข้อมูลโดยใช้แพ็คเกจการเข้ารหัสใน Python แล้ว

คุณยังสามารถบันทึกคีย์เป็นไฟล์ .txt จากนั้นดึงข้อมูลเพื่อเข้ารหัสและจัดเก็บรหัสผ่านหรือถอดรหัสรหัสผ่านจากฐานข้อมูลเพื่อตรวจสอบว่าตรงกันหรือไม่ มีอีกหลายกรณีที่คุณสามารถใช้สิ่งนี้ได้ ไม่ว่าจะเป็นโปรเจ็กต์ขนาดเล็กหรือโปรเจ็กต์ขนาดใหญ่

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโมดูลการเข้ารหัส คุณสามารถอ่านเอกสารอย่างเป็นทางการได้ที่ - https://pypi.org/project/cryptography/