🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #8124

Re: Comprobar contraseña

#8124
From: Mario Teijeiro Otero
Date: Sun, 15 Dec 2002 09:05
62 lines
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!news
References: <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