การสร้างเครื่องมือเข้ารหัส PGP ด้วย Python

เริ่มต้นด้วยความปลอดภัยทางไซเบอร์และการเข้ารหัสผ่านรหัส

ที่มา: Kaspersky.com

PGP .คืออะไร

Pretty Good Privacy หรือที่เรียกกันทั่วไปว่า PGP เป็นโปรแกรมเข้ารหัสที่ใช้กันอย่างแพร่หลาย PGP ใช้เพื่อสร้างลายเซ็นดิจิทัล เข้ารหัสและถอดรหัสข้อมูลจำนวนมาก และเพื่อเพิ่มความปลอดภัยของการสื่อสารทางอีเมล

การเข้ารหัส PGP ใช้การผสมผสานแบบอนุกรมของการแฮช การบีบอัดข้อมูล การเข้ารหัสคีย์สมมาตรและสุดท้ายคือการเข้ารหัสคีย์สาธารณะ แต่ละขั้นตอนใช้หนึ่งในหลาย ๆอัลกอริธึมที่ รองรับ กุญแจสาธารณะแต่ละอันผูกกับชื่อผู้ใช้หรือที่อยู่อีเมล

โชคดีที่โปรโตคอลการเข้ารหัส PGPs ส่วนใหญ่มีให้สาธารณะสำหรับนักพัฒนาใช้ผ่านไลบรารี Python โอเพ่นซอร์ส - pgpy การค้นพบห้องสมุดนี้ทำให้ฉันต้องพบกับการสำรวจโอเพ่นซอร์สในช่วงบ่ายวันเสาร์อีกครั้ง และการสร้างแอปเพล็ตขนาดเล็กอีกอัน ซึ่งเป็นเครื่องมือเข้ารหัสบรรทัดคำสั่งโดยใช้ PGP

ตัวอย่างบรรทัดคำสั่งของรหัสของฉัน

ด้านล่างนี้ ฉันจะแนะนำคุณเกี่ยวกับขั้นตอนพื้นฐานในการสร้างแอปเพล็ตพื้นฐานในเครื่องมือเข้ารหัส PGP ของเทอร์มินัล จำเป็นต้องมีความเข้าใจพื้นฐานเกี่ยวกับสตรีมไฟล์และการเขียนโปรแกรม

การสร้าง Command Line Applet

ในการเริ่มต้น เราจะเขียนโค้ดห้าฟังก์ชันพื้นฐานที่มีบทบาทสำคัญในการสร้างซอฟต์แวร์ของเรา ซึ่งจะให้ฟังก์ชันต่อไปนี้: การรับและการตั้งค่าคีย์ การอ่านและการเขียนคีย์ไปยังไฟล์เฉพาะ และสร้างคีย์เพื่อเริ่มต้น

เนื่องจากการรับ การตั้งค่า การอ่าน และการเขียนเป็นฟังก์ชันพื้นฐาน จึงรวมอยู่ในส่วนสำคัญด้านล่างโดยไม่มีคำอธิบาย ฟัง ก์genKeyชั่นน่าสนใจขึ้นเล็กน้อย แม้ว่ามันจะเป็น pgpy “หม้อต้ม” แต่ก็คุ้มค่าที่จะสำรวจ

บรรทัดที่ 42 ในสาระสำคัญด้านล่างสร้างคู่ของคีย์สาธารณะและส่วนตัวขนาด 4096 โดยใช้โปรโตคอล RSA ในขณะที่คำสั่งที่ตามมาในบรรทัดที่ 45 จะผูกกับอีเมลสมมติ ในกรณีนี้คือ Abe Lincoln ตามที่กำหนดไว้ในบทนำ

บรรทัดที่ 50 ช่วยให้เราสามารถระบุกรณีการใช้งานทั้งหมด (การเข้ารหัสอีเมล การเข้ารหัสดิสก์ ฯลฯ) และแฮชที่กำหนดไว้ล่วงหน้า ไซเฟอร์ และอัลกอริธึมการบีบอัดที่ใช้ในการเข้ารหัสเอกสาร ไม่มีตัวเลือกหรือแฟล็กถูกลบออกในกรณีต่อไปนี้:

ขั้นตอนต่อไปของเราเกี่ยวข้องกับการรวมคำสั่งเข้ารหัสของ pgpy เข้ากับการเรียกสตรีมไฟล์ของ Python จำเป็นต้องมีสี่ฟังก์ชัน: pgp_encryptเพื่อเข้ารหัสข้อความ pgp_decryptเพื่อถอดรหัส (ชัด); encrypt_file, และdecrypt_file. ฟังก์ชันเกี่ยวกับการเข้ารหัสและถอดรหัสไฟล์จะใช้คำสั่งเข้ารหัสและฟังก์ชันสตรีมไฟล์ร่วมกัน จะเห็นได้ด้านล่าง:

ตอนนี้การรวมทุกอย่างเข้าด้วยกันในคำสั่งหลักแสนสนุกดังที่แสดงด้านล่างจะทำให้เรามีซอฟต์แวร์เข้ารหัสที่ใช้งานได้

บทสรุป

แม้ว่าการสำรวจ PGP นี้จะไม่ได้เจาะลึกมากนัก แต่ก็เป็นจุดเริ่มต้นที่น่าสนใจสำหรับโปรแกรมเมอร์มือใหม่และผู้ที่สนใจในการรักษาความปลอดภัยและการเข้ารหัสทางไซเบอร์

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

Suggested posts

บทสนทนาอันตราย

บทสนทนาอันตราย

หากเราต้องการจะเติบโตบนโลกใบนี้ต่อไป เราจะต้องสนทนาที่อันตราย คนที่ท้าทายสิ่งที่เราทำ สิ่งที่เรากำลังทำ และสิ่งที่เรากำลังจะทำต่อไป (หรือกำลังวางแผนที่จะทำ)

การรวบรวม OSINT เพื่อการล่าภัยคุกคาม

การรวบรวม OSINT เพื่อการล่าภัยคุกคาม

สวัสดีชาวไซเบอร์! ยินดีต้อนรับกลับสู่ OSINT สำหรับซีรี่ส์การล่าภัยคุกคาม ในบทความแรก ฉันได้ให้ภาพรวมของ OSINT และความสำคัญในการตามล่าภัยคุกคาม

Related posts

ทำไมฟรีแลนซ์บางคนแกล้งทำชีวิตของพวกเขา

ทำไมฟรีแลนซ์บางคนแกล้งทำชีวิตของพวกเขา

เมื่อเร็วๆ นี้ฉันใช้ Linkedin ซึ่งเป็นโซเชียลเน็ตเวิร์กระดับมืออาชีพที่ใหญ่ที่สุดในโลก และพบโพสต์จากนักออกแบบอิสระที่ฉันติดตามซึ่งดึงดูดความสนใจของฉัน พวกเขาทั้งหมดโพสต์ภาพถ่ายจากบนเครื่องบิน บนชายหาดพร้อมแล็ปท็อป จากสระว่ายน้ำ และสำนักงานที่มีทิวทัศน์สวยงาม

3 วิธีที่พิสูจน์แล้วในการพัฒนาทักษะการเขียนของคุณ

ประโยชน์ของการเขียนและกลยุทธ์ที่จะช่วยให้คุณทำได้

3 วิธีที่พิสูจน์แล้วในการพัฒนาทักษะการเขียนของคุณ

ในปี 2022 ด้วยการเปิดตัว GPT-3 ทักษะการเขียนดูเหมือนจะมีความสำคัญน้อยลง ด้วย AI คนที่เขียนไม่ดีก็สามารถสร้างพนักงานที่มีคุณภาพได้เช่นกัน

การสร้างสภาพแวดล้อมการทำงานที่ปลอดภัย

การสร้างสภาพแวดล้อมการทำงานที่ปลอดภัย

“เขาจะปกป้องฉันเมื่อฉันตกอยู่ในอันตราย เขาจะซ่อนฉันไว้ในเต็นท์ของเขา

ไม่มีรหัสผ่านอีกต่อไป — รหัสผ่านจะมาแทนที่รหัสผ่านของคุณได้อย่างไร

ไม่มีรหัสผ่านอีกต่อไป — รหัสผ่านจะมาแทนที่รหัสผ่านของคุณได้อย่างไร

เพื่อหลีกเลี่ยงความกำกวม เราจะใช้คำศัพท์ต่อไปนี้ ผู้รับรองความถูกต้อง; โทรศัพท์มือถือที่ใช้ในการเข้าสู่ระบบเว็บไซต์; เว็บไซต์หรือแอปพลิเคชันที่ผู้ใช้ใช้เพื่อส่งคำขอเข้าสู่ระบบ ผู้ขายที่ให้บริการเช่น