Article View: es.comp.os.linux.programacion
Article #8124Re: Comprobar contraseña
From: Mario Teijeiro Otero
Date: Sun, 15 Dec 2002 09:05
Date: Sun, 15 Dec 2002 09:05
62 lines
3233 bytes
3233 bytes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Iv�n S�nchez Ortega wrote:
> quantium wrote:
>
>> Hola a todos.
>>
>> �Sabeis como puedo comprobar si una contrase�a insertada es la del
>> usuario que la ha insertado?
>>
>> He estado mirando en google y en la faq de unix, se que lo tiros van por
>> strcmp y crypt, pero no me queda nada clar, �me podriais poner un
>> ejemplo sobre su uso?
>
> Primero: hoy en d�a, necesitas ser root para poder comprobar contrase�as.
> Esto es debido a que el fichero /etc/shadow, que es donde se almacenan las
> contrase�as (encriptadas) s�lo lo puede leer root.
>
> A partir de ah�, ver�s que /etc/shadow contiene l�neas como:
>
> ivan:$1$prVhM28x$9WrURXy2yf8KtkJcBBEOA/:11865:0:99999:7:::
>
> Bien. Coge lo que hay entre el primer y segundo ":" , por ejemplo:
>
> $1$prVhM28x$9WrURXy2yf8KtkJcBBEOA
>
> Ahora, por otro lado, coges el password que quieres comprobar si vale. Le
> aplicas crypt() a ese password, y el resultado deber�a ser un string de
> unos 30 caracteres "ilegibles", m�s o menos parecido al churro que te he
> puesto de ejemplo.
>
En la libc, hay funciones est�ndar que dan esas l�neas separadas por campos.
,----[ <pwd.h>]
| struct passwd
| {
| char *pw_name; /* Username. */
| char *pw_passwd; /* Password. */
| __uid_t pw_uid; /* User ID. */
| __gid_t pw_gid; /* Group ID. */
| char *pw_gecos; /* Real name. */
| char *pw_dir; /* Home directory. */
| char *pw_shell; /* Shell program. */
| };
| extern struct passwd *getpwent (void) __THROW;
|
`----
Tambi�n est� la funcion fgetpwent que coge de FILE, as�
si se le pasa shadow, te devuelve el campo passwd
saludos
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
iD8DBQE9/EXMMKsc+XeZcdwRAkNxAJ4/Ao+bVKTfQrZ/Szz7MXD8vdLCfQCdH7JH
DOpNj4vGN/rDT3/qzMvNb0Y=
=rWlr
-----END PGP SIGNATURE-----
Technical Details
Message-ID:
<d7ttc-3h9.ln1@cernicalo.escomposlinux.org>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed.wirehub.nl!news-hub.cableinet.net!blueyonder!marmolejo.escomposlinux.org!antonio.escomposlinux.org!cernicalo.escomposlinux.org!newsReferences:
<atgjct$13knnp$1@ID-129971.news.dfncis.de> <20021215010241.1E93C245.NOFFLE@BlueSpark.local>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,249be857bbf5a850 X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2002-12-15 03:00:10 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed.wirehub.nl!news-hub.cableinet.net!blueyonder!marmolejo.escomposlinux.org!antonio.escomposlinux.org!cernicalo.escomposlinux.org!news From: Mario Teijeiro Otero <emeteo@escomposlinux.org> Newsgroups: es.comp.os.linux.programacion Subject: Re: Comprobar contraseña Date: Sun, 15 Dec 2002 10:05:12 +0100 Organization: Ecolnet Lines: 62 Message-ID: <d7ttc-3h9.ln1@cernicalo.escomposlinux.org> References: <atgjct$13knnp$1@ID-129971.news.dfncis.de> <20021215010241.1E93C245.NOFFLE@BlueSpark.local> NNTP-Posting-Host: 89.red-80-59-254.pooles.rima-tde.net Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8Bit X-Trace: antonio.escomposlinux.org 1039950009 13298 80.59.254.89 (15 Dec 2002 11:00:09 GMT) X-Complaints-To: usenet@antonio.escomposlinux.org NNTP-Posting-Date: Sun, 15 Dec 2002 11:00:09 +0000 (UTC) User-Agent: KNode/0.7.2