GNU/Linux >> Znalost Linux >  >> Linux

Zaměňte řetězce v Pythonu

Pokud chcete jen zabránit náhodnému pohledu na heslo, možná budete chtít zvážit kódování/dekódování hesla do/z base64. Není to ani v nejmenším bezpečné, ale heslo nebude čitelné pro člověka nebo robota.

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)

Nejlepší možností je samozřejmě delegovat to na třetí stranu. Pokud se můžete ověřit pomocí čehokoli, k čemu se připojujete, pomocí jiných pověření (např. uživatelského účtu, pod kterým váš proces běží), můžete ponechat úrovně oprávnění na vrstvě OS. Alternativně, pokud je to dostatečně důležité/možné, můžete uživatele vyzvat (místo toho uložit klíč do (pravděpodobně) o něco méně hackovatelného softwaru)

Pokud uděláte potřebujete uložit nějaké heslo nebo klíč, doporučil bych vám je uložit odděleně z vašeho kódu, v souboru, který čtete, a v případě potřeby de-obfustifikujete. To má výhody:

  • Oprávnění k souboru můžete nastavit co nejpřísněji (tj. čitelné pouze pro účet, pod kterým váš program běží), na rozdíl od zbytku vašeho programu, který může číst více lidí.

  • Nebudete to náhodou kontrolovat ve vašem systému správy verzí!

  • Není třeba se omezovat na tisknutelné znaky (nebo používat nepříjemné escapování) pro řetězec python, takže můžete použít libovolný soubor klíče, pokud je to možné, místo hesla čitelného člověkem. Pokud do něj nevstoupil člověk, není důvod mít všechny slabiny hesel.

Chcete-li zatemnit, můžete použít base64, jak je navrženo, nebo nějaké schéma domácího vaření, jako je XORing nebo dešifrování s jiným klíčem uloženým jinde, což vyžaduje, aby se podíval na obě místa. Uvědomte si, že to nechrání před ničím jiným než oportunním ramenem surfování (pokud ano) – ujistěte se, že existuje určitá úroveň skutečného také zabezpečení (včetně těch samozřejmých, jako je fyzický přístup ke stroji!)


Linux
  1. Jak změníme heslo root?

  2. Instalace Pythonu 3.3.2?

  3. Nainstalujte python-novaclient na Windows

  1. Jak nainstalovat Python na Linux

  2. Nastavte Python na IIS 7.5

  3. Otázky Python virtualenv

  1. Převod kódu Python 2 na Python 3

  2. Vypršela platnost hesla v Sambě V3.0?

  3. Jak na to:Programování soketů v Pythonu