[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 smtplib
import sys import sys
import os import os
import base64
import hashlib
import ldap.filter import ldap.filter
sys.path.append('/usr/scripts/gestion') sys.path.append('/usr/scripts/gestion')
import config import config
@ -153,9 +155,9 @@ def strip_accents(a):
res = normalize('NFKD', a).encode('ASCII', 'ignore') res = normalize('NFKD', a).encode('ASCII', 'ignore')
return unicode(res) return unicode(res)
def strip_spaces(a): def strip_spaces(a, by=u'_'):
""" Suppression des espaces et des apostrophes""" """ 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): def mailexist(mail):
"""Vérifie si une adresse mail existe ou non grace à la commande """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é """Renvoie une chaîne échapée pour pouvoir la mettre en toute sécurité
dans une requête ldap.""" dans une requête ldap."""
return ldap.filter.escape_filter_chars(chaine) 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)