|
|
|
@ -39,11 +39,11 @@ class encrypt(color_print):
|
|
|
|
|
Методы шифрования, создания сертификатов и.т. д
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
def __GenCryptSalt__(self):
|
|
|
|
|
def __GenCryptSalt__(self, len=2):
|
|
|
|
|
"""Генерация соли для хеширования пароля (CRYPT)"""
|
|
|
|
|
chars = string.letters + string.digits + "./"
|
|
|
|
|
salt = ""
|
|
|
|
|
for i in range(2):
|
|
|
|
|
for i in range(len):
|
|
|
|
|
salt = salt + choice(chars)
|
|
|
|
|
return salt
|
|
|
|
|
|
|
|
|
@ -51,7 +51,8 @@ class encrypt(color_print):
|
|
|
|
|
"""Генерация хеша пароля,
|
|
|
|
|
|
|
|
|
|
Поддерживаемые алгоритмы шифрования пароля:
|
|
|
|
|
plain, md5, smd5, crypt, sha, ssha, lm, nt
|
|
|
|
|
plain, md5, smd5, crypt, sha, ssha, lm, nt, shadow_ssha512,
|
|
|
|
|
shadow_ssha256, shadow_md5
|
|
|
|
|
"""
|
|
|
|
|
if not password:
|
|
|
|
|
self.printERROR(_("ERROR") + " getHashPasswd: " +\
|
|
|
|
@ -72,6 +73,18 @@ class encrypt(color_print):
|
|
|
|
|
h.update(salt)
|
|
|
|
|
hashPwd = "{SMD5}" + b64encode(h.digest() + salt)
|
|
|
|
|
|
|
|
|
|
elif SecHashAlg == "shadow_ssha512":
|
|
|
|
|
salt = self.__GenCryptSalt__(8)
|
|
|
|
|
hashPwd = crypt.crypt(password, "$6$%s$"%salt)
|
|
|
|
|
|
|
|
|
|
elif SecHashAlg == "shadow_ssha256":
|
|
|
|
|
salt = self.__GenCryptSalt__(8)
|
|
|
|
|
hashPwd = crypt.crypt(password, "$5$%s$"%salt)
|
|
|
|
|
|
|
|
|
|
elif SecHashAlg == "shadow_md5":
|
|
|
|
|
salt = self.__GenCryptSalt__(8)
|
|
|
|
|
hashPwd = crypt.crypt(password, "$1$%s$"%salt)
|
|
|
|
|
|
|
|
|
|
elif SecHashAlg == "crypt":
|
|
|
|
|
salt = self.__GenCryptSalt__()
|
|
|
|
|
hashPwd = "{CRYPT}" + crypt.crypt(password, salt)
|
|
|
|
@ -98,7 +111,8 @@ class encrypt(color_print):
|
|
|
|
|
%SecHashAlg)
|
|
|
|
|
return False
|
|
|
|
|
return hashPwd
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def createCertificate(self, sslCountry="US",
|
|
|
|
|
sslState="California",
|
|
|
|
|
sslLocality="Santa Barbara",
|
|
|
|
|