2013-08-17 13 views
15

quindi questo è il mio codice e voglio nascondere la mia password, ma non so come. mi sono guardato intorno e nessuno di loro sembra adattarsi alla mia codifica, questa è la codifica corrente. Voglio dire, ho visto show = "*" e anche getpass ma non so come metterli in questa codifica. im usando python 2.7.3 e im coding su un raspberry pi.python Nascondere raw_input

ans = True 

while ans: 
    print(""" 
        ------------- 
        | 1. Shutdown | 
        | 2. Items | 
        ------------- 
    """) 

    ans=raw_input(""" 

      Please Enter A Number: """) 

    if ans == "1": 

     exit() 
    elif ans == "2": 


     pa=raw_input(""" 

      Please Enter Password: """) 

     if pa == "zombiekiller": 

      print(""" 
        ---------------- 
        | 1. Pi password | 
        | 2. Shutdown | 
        ---------------- 
      """) 

      pe=raw_input (""" 

      Please Enter A Number: """) 

      if pe == "1": 
       print (""" 

      Pi's Password Is Adminofpi""") 
       import time 
       time.sleep(1) 
       exit() 

      elif pe == "2": 
       exit() 

      else: 
       print(""" 

      You Have Entered An Inccoredt Option. Terminating Programm""") 
       import time 
       time.sleep(1) 
       exit() 

     else: 
       print(""" 

      You Have Entered An Inccorect Password. Terminating Programm""") 
       import time 
       time.sleep(1) 
       exit() 
+0

Utilizzare [getpass.getpass()] (http://docs.python.org/2/library/getpass#getpass.getpass). – falsetru

+0

possibile duplicato di [Ottenere l'input della password da linea di comando in Python] (http://stackoverflow.com/questions/9202224/getting-command-line-password-input-in-python) – IanAuld

risposta

0

utilizzare la libreria hashlib di Python per prendere l'hash MD5 dell'ingresso, e confrontarla con una versione hash della password nello script. Here's un esempio di come potresti farlo.

+5

Questo non è quello che ha chiesto. Voleva nascondere l'input di 'raw_input' ... – tamasgal

+0

Non ho capito nulla di tutto ciò, sto provando con getpass.getpass al momento –

+0

Non sono sicuro di aver capito cosa vuole realmente. Vuole nascondere l'input nel terminale o il valore della password nel programma? –

48

getpass nasconde l'ingresso, basta sostituire raw_input dopo l'importazione del modulo getpass, in questo modo:

import getpass 
. 
. 
. 
pa = getpass.getpass() 
-1

Non conservare userid e password in un file di origine, che è vulnerabilità di sicurezza!

Memorizzarli in un file di testo e crittografarli con una crittografia a chiave simmetrica (almeno MD5 o lo standard min attualmente consigliato, SHA-3) per codificare la password.

Il risultato sarebbe simile:

: admin: $ 1 $ DQx/Wdy5 $ QQrH98XjvFBOm6vqu3qN/1 :: Amministratore: admin: [email protected]:

Nel codice bloccare il tuo letto il file e utilizzare lo stesso algoritmo per decrittografare la password.

Problemi correlati