[crans_utils] strip_spaces paramètre pour choisir le remplasant des espaces, fonction pour calculer des hash SSHA

This commit is contained in:
Valentin Samir 2014-03-15 22:46:20 +01:00
parent dd94fcd228
commit 23369476ef

View file

@ -37,6 +37,8 @@ import time
import smtplib
import sys
import os
import base64
import hashlib
import ldap.filter
sys.path.append('/usr/scripts/gestion')
import config
@ -153,9 +155,9 @@ def strip_accents(a):
res = normalize('NFKD', a).encode('ASCII', 'ignore')
return unicode(res)
def strip_spaces(a):
def strip_spaces(a, by=u'_'):
""" Suppression des espaces et des apostrophes"""
return a.replace(u' ', u'_').replace(u"'", u'')
return a.replace(u' ', by).replace(u"'", u'')
def mailexist(mail):
"""Vérifie si une adresse mail existe ou non grace à la commande
@ -232,3 +234,12 @@ def escape(chaine):
"""Renvoie une chaîne échapée pour pouvoir la mettre en toute sécurité
dans une requête ldap."""
return ldap.filter.escape_filter_chars(chaine)
def hash_password(password, salt=None):
if salt is None:
salt = os.urandom(8)
elif len(salt)<8:
raise ValueError("salt devrait faire au moins 8 octets")
return '{SSHA}' + base64.b64encode(hashlib.sha1(password + salt).digest() + salt)