GNU/Linux >> Belajar Linux >  >> Linux

Mengaburkan string dengan Python

Jika Anda hanya ingin mencegah sekilas kata sandi, Anda mungkin ingin mempertimbangkan untuk menyandikan/mendekodekan kata sandi ke/dari base64. Ini tidak aman sama sekali, tetapi kata sandinya tidak akan dapat dibaca oleh manusia/robot begitu saja.

import base64
# Encode password (must be bytes type)
encoded_pw = base64.b64encode(raw_pw)

# Decode password (must be bytes type)
decoded_pw = base64.b64decode(encoded_pw)

Jelas pilihan terbaik Anda adalah mendelegasikan ini ke pihak ketiga. Jika Anda dapat mengautentikasi dengan apa pun yang Anda sambungkan menggunakan beberapa kredensial lain (mis. Akun pengguna tempat proses Anda berjalan), Anda dapat membiarkan tingkat izin hingga ke lapisan OS. Alternatifnya, jika cukup penting / mungkin Anda dapat meminta pengguna (menyimpan kunci di (bisa dibilang) wetware yang sedikit tidak dapat diretas)

Jika Anda lakukan perlu menyimpan beberapa kata sandi atau kunci, saya sarankan Anda menyimpannya terpisah dari kode Anda, dalam file yang Anda baca, dan de-obfusticate jika perlu. Ini memiliki keuntungan bahwa:

  • Anda dapat menyetel izin file pada file seketat mungkin (yaitu, hanya dapat dibaca oleh akun tempat program Anda berjalan), tidak seperti program Anda lainnya yang dapat dibaca oleh lebih banyak orang.

  • Anda tidak akan secara tidak sengaja memeriksanya ke dalam sistem kontrol versi Anda!

  • Tidak perlu dibatasi pada karakter yang dapat dicetak (atau menggunakan pelolosan yang canggung) untuk string python, sehingga Anda dapat menggunakan file kunci sewenang-wenang jika memungkinkan, daripada kata sandi yang dapat dibaca manusia. Jika bukan dimasuki manusia, tidak ada alasan untuk memiliki semua kelemahan kata sandi.

Untuk menyamarkan, Anda dapat menggunakan base64 seperti yang disarankan, atau beberapa skema buatan sendiri seperti XORing atau mendekripsi dengan kunci lain yang disimpan di tempat lain, yang membutuhkan kedua lokasi untuk dilihat. Ketahuilah bahwa ini tidak melindungi dari apa pun di luar selancar bahu oportunistik (jika itu) - pastikan ada tingkat nyata keamanan juga (termasuk yang jelas seperti akses fisik ke mesin!)


Linux
  1. Instalasi Python 3.3.2?

  2. Instal python-novaclient di Windows

  3. Siapkan Python di IIS 7.5

  1. Cara menginstal Python di Linux

  2. Pertanyaan virtualenv python

  3. Memulihkan Kata Sandi Root

  1. Mengonversi kode Python 2 Anda ke Python 3

  2. Bagaimana Kami Mengubah Kata Sandi Root?

  3. Kata Sandi Kedaluwarsa Di Samba V3.0?