Informazioni sugli algoritmi di hashing della password di Oracle 11g

1

Sto cercando di capire l'algoritmo di hashing della password di Oracle 11g, ho trovato questo link che spiega come è fatto, tuttavia, ho una certa confusione su come dicono che è fatto. Secondo questo link va così:

  • La stringa salt casuale di 10 byte viene generata da oracle
  • La password e la stringa salina diventano una sola
  • Oracle esegue la stringa tramite un algoritmo SHA1
  • L'output è S:<HASH(password+salt)><SALT>

Quindi ad esempio:

>>> import hashlib
>>> d = hashlib.sha1()
>>> salt = "test"  # random salt (not 10 bytes)
>>> password = "testing"  # password
>>> password2 = password + salt  # salt and password become one
>>> print password2
testingtest
>>> d.update(password2)  
>>> data = d.hexdigest()  # hexdigest the password string (password+salt)
>>> hash_to_display = "s:{}{}".format(data, salt)  # return s:<HASH(pass+salt)><SALT>
>>> print hash_to_display.upper()
S:6B399DF23C6B76D667F5E043D2DD13407A2245BBTEST
>>> 

Sono corretto assumendo che questo è il modo in cui Oracle 11g esegue l'hashing?

    
posta 13aal 25.06.2017 - 06:46
fonte

1 risposta

1

Ciò che corrisponde alla documentazione che ho trovato (sia ufficiale che non). Peccato, non è sicuro come potrebbe essere. Anche se si utilizza SHA-1 (forse per essere conforme a FIPS 140-2), è possibile eseguire i dati attraverso molte iterazioni per rendere molto più difficile la forza bruta.

    
risposta data 26.06.2017 - 00:21
fonte

Leggi altre domande sui tag