สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นว่าด้วย Python ง่าย ๆ คุณสามารถรักษาไฟล์ของคุณให้ปลอดภัยโดยใช้ AES มาตรฐานอุตสาหกรรมได้อย่างไร
ความต้องการ:
- หลาม 3.7
- ห้องสมุด PyAesCrypt
- ห้องสมุดแฮชลิบ
หากคุณไม่มีไลบรารีเหล่านี้ คุณสามารถติดตั้งได้ง่ายๆ โดยพิมพ์:
pip3 ติดตั้ง hashlib
pip3 ติดตั้ง PyAesCrypt
ในเทอร์มินัล (หรือ CMD)
คุณควรมีสิ่งเหล่านี้อยู่แล้ว:
- ห้องสมุดสุ่ม
- ระบบปฏิบัติการห้องสมุด
- ห้องสมุดระบบ
ฉันใช้ OS X แต่ไม่ควรมีความสำคัญมากเกินไป ยกเว้นทิศทางของเครื่องหมายทับในเส้นทางของไฟล์ (OS X: /, Windows: )
โปรดทราบ: เนื่องจากความผิดพลาดบางประการ การเยื้องในโค้ดจึงไม่แสดงขึ้นด้วยเหตุผลบางประการ ดังนั้นโค้ดที่แสดงจะไม่มีการเยื้อง แต่มีอยู่ในไฟล์ Python ที่ฉันแนบในตอนท้ายและในรูปภาพที่แนบมา อย่าใช้รหัสโดยตรงจากข้อความที่แสดง เพราะรหัสจะไม่ทำงานเนื่องจากไม่มีการเยื้อง
หากคุณได้ติดตั้งการพึ่งพาทั้งหมด ไปที่ขั้นตอนที่ 1
ขั้นตอนที่ 1: การเขียนไฟล์ติดตั้ง
ปัจจัยหนึ่งที่ทำให้สิ่งนี้ปลอดภัยมากคือการใช้แฮชเพื่อตรวจสอบรหัสผ่าน ไฟล์ติดตั้ง (ฉันกำลังเรียก setupsafe.py ของฉัน) กำลังจะไปที่:
- สร้างโฟลเดอร์และไฟล์จำลองสำหรับรหัสผ่าน
- ตั้งรหัสผ่าน
- ตั้งค่าหมายเลขไฟล์
- แฮชรหัสผ่าน
ก่อนอื่น เราจะนำเข้าการพึ่งพาของเรา:
จากการนำเข้า sys *
นำเข้าระบบปฏิบัติการ
นำเข้าสุ่ม
นำเข้า hashlib
ต่อไปเราจะสร้างโฟลเดอร์เพื่อเก็บแฮชรหัสผ่านและไฟล์จำลอง:
ลอง: ถ้าไม่ใช่ os.path.exists('desktop/safesetup'):
os.mkdir('เดสก์ท็อป/safesetup/')
ยกเว้น OSError:
print("เกิดข้อผิดพลาดในการสร้างโฟลเดอร์")
รหัสนี้จะสร้างโฟลเดอร์ชื่อ safesetup (เว้นแต่จะมีอยู่แล้ว)
หลังจากนี้ เราจะตั้งรหัสผ่าน และสร้างตัวเลขสุ่มระหว่าง 1 ถึง 100 เพื่อนำทางไปยังไฟล์จำลอง:
รหัสผ่านทั่วโลก = argv[1].encode('utf-8')
n = random.randint(1, 101)
ตอนนี้เรามีรหัสผ่านและหมายเลขไฟล์แล้ว เราจะสร้างไฟล์จำลอง 99 ไฟล์ภายใน safesetup และไฟล์จริงหนึ่งไฟล์จะมีแฮชรหัสผ่านของเรา:
สำหรับ x ในช่วง(101): ถ้า(x != n):
f = open(("เดสก์ท็อป/safesetup/"+str(x)), "w+")
f.close()
อื่น:
รหัสผ่าน = hashlib.sha256(รหัสผ่าน).hexdigest()
f = open(("เดสก์ท็อป/safesetup/"+str(x)), "w+")
f.write (รหัสผ่าน)
f.close()
พิมพ์ (n)
ไฟล์จริงเรียกว่าจำนวนเต็ม n อะไรก็ตาม ไฟล์นี้มีรหัสผ่านของเรา หลังจากที่ถูกแฮชโดยใช้อัลกอริธึม sha256 (อัลกอริธึมแฮชนี้ใช้กันอย่างแพร่หลายในสกุลเงินดิจิตอล โดยเฉพาะ Bitcoin)
จำไว้ว่า n คืออะไร (จะถูกพิมพ์ในคอนโซล) เนื่องจากมันสำคัญพอๆ กับรหัสผ่าน
นั่นคือทั้งหมดที่เราต้องการสำหรับโปรแกรมติดตั้งของเรา ดังนั้นตอนนี้เราจะย้ายไปที่โปรแกรมเข้ารหัส/ถอดรหัส
ขั้นตอนที่ 2: ไฟล์การเข้ารหัส/ถอดรหัส
ส่วนการตั้งค่าของไฟล์หลักนำเข้าการพึ่งพา แฮชรหัสผ่านที่ป้อน และดึงข้อมูลแฮชรหัสผ่านจริงโดยใช้หมายเลขไฟล์ที่ป้อน
ประการแรก การพึ่งพาอาศัยกัน:
จากการนำเข้า sys *import os
นำเข้า pyAesCrypt
นำเข้า hashlib
ถัดไป การแฮชของรหัสผ่านที่ป้อน:
รหัสผ่าน = argv[1].encode('utf-8')รหัสผ่าน = hashlib.sha256(รหัสผ่าน).hexdigest()
สุดท้าย การดึงรหัสผ่านที่แฮช:
file_key = str(argv[2])hash = open(("desktop/safesetup/" + file_key), ("r+")).read()
ส่วนที่สองของไฟล์เข้ารหัสจะเปรียบเทียบแฮช กำหนดความถูกต้องของการเปรียบเทียบ และใช้ไลบรารี AESCrypt python เพื่อเข้ารหัสหรือถอดรหัสไฟล์ที่คุณเลือก นี่เป็นรหัสที่ค่อนข้างใหญ่ แต่ฉันจะแยกย่อย:
if(password == hash): print("รหัสผ่านที่ยอมรับ")
ขนาดบัฟเฟอร์ = 64 * 1024
operation = str(input("คุณกำลังดึงหรือเข้ารหัสไฟล์หรือไม่ (r หรือ e) "))
ถ้า (การดำเนินการ == 'r'):
file_name = str(input("ไฟล์ที่จะดึง: "))
pyAesCrypt.decryptFile((file_name + ".aes"), file_name, รหัสผ่าน, ขนาดบัฟเฟอร์)
os.remove((ชื่อไฟล์ + ".aes"))
elif(การดำเนินการ == 'e'):
file_name = str(input("ไฟล์ที่จะเข้ารหัส: "))
pyAesCrypt.encryptFile(file_name, (file_name + ".aes"), รหัสผ่าน, ขนาดบัฟเฟอร์)
os.remove (ชื่อไฟล์)
อื่น:
พิมพ์ ("ข้อผิดพลาด: ป้อนข้อมูลไม่ถูกต้อง")
อื่น:
พิมพ์ ("การเข้าถึงถูกปฏิเสธ")
คำสั่ง if แรกจะกำหนดว่ารหัสผ่านที่แฮชตรงกันหรือไม่ หากเป็นเช่นนั้น ระบบจะถามว่าคุณต้องการเข้ารหัสไฟล์หรือเรียกไฟล์ที่เข้ารหัสหรือไม่ ขึ้นอยู่กับอินพุตของคุณ มันจะเข้ารหัสหรือถอดรหัสไฟล์ที่ให้มา เมื่อได้รับแจ้งให้ระบุชื่อไฟล์ ตรวจสอบให้แน่ใจว่าได้ระบุพาธเว้นแต่ไฟล์จะอยู่ในไดเร็กทอรีเดียวกันกับโปรแกรม python โปรแกรมจะลบไฟล์ในสถานะก่อนหน้า แทนที่ด้วยไฟล์.aes ที่เข้ารหัส หรือถอดรหัสและแทนที่ด้วยไฟล์ต้นฉบับ
ในอนาคต ฉันอาจอัปเดตสิ่งนี้เพื่อรวมการจดจำใบหน้าโดยใช้ไลบรารี Python OpenCV แต่สำหรับตอนนี้ รหัสผ่านจะต้องเพียงพอ
ขั้นตอนที่ 3: การทำงานของไฟล์
เมื่อต้องการเรียกใช้ไฟล์ติดตั้ง ให้ทำตามขั้นตอนเหล่านี้:
1. พิมพ์เทอร์มินัล:
รหัสผ่านไดเรกทอรี python3/setupname.py (แทนที่ไดเรกทอรี ชื่อการตั้งค่า และรหัสผ่านด้วยค่าที่เกี่ยวข้อง)
2. เทอร์มินัลจะส่งออกหมายเลขไฟล์ของคุณ เก็บนี่ไว้.
ในการรันโปรแกรมเข้ารหัส/ถอดรหัส ให้ทำตามขั้นตอนเหล่านี้:
1. พิมพ์เทอร์มินัล:
python3 directory/filename.py password filenumber (แทนที่ไดเร็กทอรี ชื่อไฟล์ รหัสผ่าน และหมายเลขไฟล์ด้วยค่าตามลำดับ)
2. เทอร์มินัลจะยอมรับหรือปฏิเสธรหัสผ่านของคุณ หากถูกปฏิเสธ ให้ลองอีกครั้งและตรวจสอบว่าคุณพิมพ์ค่าที่ถูกต้อง เมื่อได้รับสิทธิ์ในการเข้าถึงแล้ว เทอร์มินัลจะถามคุณว่าคุณต้องการเข้ารหัสไฟล์หรือเรียกค้นไฟล์หรือไม่ หากต้องการเข้ารหัสไฟล์ ให้พิมพ์ e และหากต้องการดึงไฟล์ที่เข้ารหัส ให้พิมพ์ r
3. จากนั้นคุณจะถูกขอให้ระบุชื่อไฟล์ อย่าลืมระบุไดเร็กทอรีของไฟล์ รวมถึงชื่อ และนามสกุลไฟล์ด้วย อย่างไรก็ตาม หากคุณกำลังถอดรหัสไฟล์ อย่าพิมพ์ส่วน.aes ของส่วนขยาย เนื่องจากรหัสจะรับผิดชอบ
4. จากนั้นโปรแกรมจะเข้ารหัสหรือถอดรหัสไฟล์ที่ให้มา และลบไฟล์ในสถานะก่อนหน้า (เก็บไฟล์ที่เข้ารหัสหรือถอดรหัสไว้)
โว้ว! ขอบคุณที่ทำให้เป็นคำสั่งสอนได้ไกลขนาดนี้ ฉันรู้ว่าการอ่านบทช่วยสอนโค้ดไม่ใช่สิ่งที่สนุกสนานที่สุด ไฟล์ python ถูกปิดไว้ในขั้นตอนนี้ สำหรับบรรดาผู้ที่ต้องการจะลองดู ขอขอบคุณอีกครั้งสำหรับการอ่าน และฉันขอให้คุณโชคดีในความพยายามเขียนโค้ดในอนาคตของคุณ