Foros del Web » Programando para Internet » PHP »

Encriptacion Autentificacion de Usuario

Estas en el tema de Encriptacion Autentificacion de Usuario en el foro de PHP en Foros del Web. Me estan solicitando encriptar el siguiente codigo: menuAdmin.php ---------------------- <?php if (!isset($PHP_AUTH_USER)) { header('WWW-Authenticate: Basic realm="Acceso restringido"'); header('HTTP/1.0 401 Unauthorized'); echo 'Authorization Required.'; exit; } ...
  #1 (permalink)  
Antiguo 22/07/2008, 14:25
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Pregunta Encriptacion Autentificacion de Usuario

Me estan solicitando encriptar el siguiente codigo:

menuAdmin.php
----------------------
<?php
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="Acceso restringido"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
exit;
}

$fich = file("passwords.txt");
$i=0; $validado=false;
while ($fich[$i] && !$validado) {
$campo = explode("|",$fich[$i]);
if (($PHP_AUTH_USER==$campo[0]) && ($PHP_AUTH_PW==chop($campo[1]))) $validado=true;
$i++;
}

if (!$validado) {
header('WWW-Authenticate: Basic realm="Acceso restringido"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
exit;
}
?>
<!-- Manual de PHP-->


<html>
<head>
</head>
<body>
<table>
<tr>
<td">ADMINISTRADOR DE CONTENIDOS</td>
</table>
</body>
</html>

PASSWORDS.TXT
---------------------
Usuario1|Usuario1

Los cuales lo encontre en la pagina web, ...La verdad es que esto es nuevo para mi, ya que recien estoy ingresando a este fabuloso mundo que es el php...asi que acudo de su experiencia para que por favor me puedan ayudar .


Agradesco la atencion brindada, y esperando una respuesta positiva.
  #2 (permalink)  
Antiguo 22/07/2008, 14:52
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: Encriptacion Autentificacion de Usuario

hola amigo para encriptar código puedes usar md5 o sha1 que es lo que ocupo y recomiendo, solo debes ocupar la función en el campo y encriptara automaticamente tu campo...

ej..
Código PHP:
<?php
$campo 
"mipassword";
//encriptaremos $campo 
$campo_encriptado sha1("$campo");

//mostramos el campo emcriptado
echo "$campo_enciptado";

//esta es la forma para encriptar campos con sha1 con md5 es solo cambiar donde pone
//sha1 por md5 y ya son algoritmos diferentes tu ves cual ocupas
//solo cabe recordar que es imposible al menos sha1 desencriptar hasta ahora, por lo que lo
//hace seguro....

?>
saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 22/07/2008, 15:30
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Encriptacion Autentificacion de Usuario

Haber si entendi, de no ser el caso te rogaria me corrigieras por favor:

<?php
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="Acceso restringido"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
exit;
}

$fich = file("passwords.txt");
$fich_encriptado=md5("$fich");
$i=0; $validado=false;
while ($fich_encriptado[$i] && !$validado) {
$campo = explode("|",$fich_encriptado[$i]);
if (($PHP_AUTH_USER==$campo[0]) && ($PHP_AUTH_PW==chop($campo[1]))) $validado=true;
$i++;
}

if (!$validado) {
header('WWW-Authenticate: Basic realm="Acceso restringido"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
exit;
}
?>

Saludos cordiales,
  #4 (permalink)  
Antiguo 22/07/2008, 17:58
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Encriptacion Autentificacion de Usuario

Se intento con el codigo mencionado lineas arriba, pero igual no puedo tener acceso al menu de administracion de catalogo (menuAdmin.php)

Por favor solicito alguna sugerencia o es que el codigo esta mal planteado

gracias...
  #5 (permalink)  
Antiguo 22/07/2008, 18:23
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Encriptacion Autentificacion de Usuario

Hoberwilly:
1.-Cuando alguien trata de ingresar a tu directorio o archivo,
se les pide nombre de usuario y contraseña.
Esto se identifican con $PHP_AUTH_USER y $PHP_AUTH_PW
si el usuario es : hoberwilly entonces $PHP_AUTH_USER lo toma
como hoberwilly; seguidamente tu comparas hoberwilly con
hoberwilly cifrado o encriptado como tu dices:
Logicamente no coinciden y no te dejaran entrar.
2.- Cifrar o encriptar como tu le dices no esta realizando ninguna funcion util.
3.- Creo que si guardas lo que contiene el archivo passwords.txt de forma cifrada
utilizando un cifrador que tenga su reverso o descifrador (Codificador, decodificador)
entonces si podrias comparar.
Saludos
Y espero te ayude
Franco

Última edición por franco190453; 22/07/2008 a las 18:43
  #6 (permalink)  
Antiguo 22/07/2008, 18:58
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Encriptacion Autentificacion de Usuario

Gracias Franco de antemano, es de gran ayuda amigo...

Disculpando por la ignorancia,
1. oka segun el codigo si estamos, con $PHP_AUTH_USER y $PHP_AUTH_PW el administrador ingresara nombre_usuario y password...

Entonces al comparar user(hoberwilly) con el user cifrado de veras que coincidiran ...oka
2. Estoy tratando de cifrarlo al codigo...debido a que el servidor que esta alojado mi codigo me solicita, por el tema de seguridad.
3. En este punto no entiendo cuando hablas de usar un cifrador que se descifre...o en todo caso que me sugieres, o en donde hay que amoldar al ultimo codigo que puse.

Agradesco de antemano tu colaboracion.
  #7 (permalink)  
Antiguo 22/07/2008, 19:57
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Encriptacion Autentificacion de Usuario

hoberwilly:
No soy muy conocedor de esto pero
con javascript si puedes cifrar un password o contraseña
cuando esta es enviada desde el codigo de la pagina html o xhtml o shtml o aun php hacia el script en php u otro lenguaje en el servidor.
Aqui hay dos cosas:
1.- Es necesario que al enviar contraseñas desde una pagina como te indicaba arriba, hacia un servidor, esa contraseña vaya cifrada. En estos casos lo mejor es javascript, aunque con php tambien se puede pero francamente nunca lo he utilizado.
2.- El manejo del password o contraseña dentro del servidor es otra de las grandes preocupaciones de los encargados de seguridad y esto implica cifrar o guardar los passwords cifrados y comparar descifrando.
Saludos
Y espero te ayude
Franco
P.S. Hay infinidad de scripts en javascript para enviar contraseñas de forma segura.
  #8 (permalink)  
Antiguo 22/07/2008, 21:51
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Encriptacion Autentificacion de Usuario

Hoberwilly:
Aqui te dejo estos tres scripts que una vez utilice con exito.
Involucran un archivo javascript que se llama md5.js, simplemente
debes hacer un copy and paste y guardarlo como te dije.
Asimismo, te incluyo un archivo HTML que tambien puede ser XHTML
y aun SHTML y finalmente te incluyo el codigo del archivo en php
que se debera llamar prueba.php
Con estos tres tienes totalmente seguro el envio desde el cliente
navegador al servidor, la contraseña.
Como manejarla cuando la recibas y donde tenerla guardada ya son asuntos
muy diferentes.

function md5(s){
function Z(n,c){return(n<<c)|(n>>>(32-c))}
function Y(q,a,b,x,s,t){return X(Z(X(X(a,q),X(x,t)),s),b)}
function A(a,b,c,d,x,s,t){return Y((b&c)|((~b)&d),a,b,x,s,t)}
function C(a,b,c,d,x,s,t){return Y(b^c^d,a,b,x,s,t)}
function D(a,b,c,d,x,s,t){return Y(c^(b|(~d)),a,b,x,s,t)}
function X(x,y){var l=(x&0xFFFF)+(y&0xFFFF),m=(x>>16)+(y>>16)+(l>>16); return(m<<16)|(l&0xFFFF)}

var w=s.length*8,i,hx="0123456789abcdef",L=(((w+64)>>> 9)<<4)+15,x=Array(L+15);
for(i=0;i<x.length;++i)x[i]=0;
for(i=0;i<w;i+=8)x[i>>5]|=(s.charCodeAt(i/8)&255)<<(i%32);
x[w>>5]|=0x80<<((w)%32);
x[L-1]=w;

var a=1732584193,b=-271733879,c=-1732584194,d=271733878;
for(i=0;i<L;i+=16){
var oa=a,ob=b,oc=c,od=d;
a=A(a,b,c,d,x[i],7,-680876936);d=A(d,a,b,c,x[i+1],12,-389564586);c=A(c,d,a,b,x[i+2],17,606105819);b=A(b,c,d,a,x[i+3],22,-1044525330);
a=A(a,b,c,d,x[i+4],7,-176418897);d=A(d,a,b,c,x[i+5],12,1200080426);c=A(c,d,a,b,x[i+6],17,-1473231341);b=A(b,c,d,a,x[i+7],22,-45705983);
a=A(a,b,c,d,x[i+8],7,1770035416);d=A(d,a,b,c,x[i+9],12,-1958414417);c=A(c,d,a,b,x[i+10],17,-42063);b=A(b,c,d,a,x[i+11],22,-1990404162);
a=A(a,b,c,d,x[i+12],7,1804603682);d=A(d,a,b,c,x[i+13],12,-40341101);c=A(c,d,a,b,x[i+14],17,-1502002290);b=A(b,c,d,a,x[i+15],22,1236535329);
a=B(a,b,c,d,x[i+9],5,568446438);d=B(d,a,b,c,x[i+14],9,-1019803690);c=B(c,d,a,b,x[i+3],14,-187363961);b=B(b,c,d,a,x[i+8],20,1163531501);
a=B(a,b,c,d,x[i+13],5,-1444681467);d=B(d,a,b,c,x[i+2],9,-51403784);c=B(c,d,a,b,x[i+7],14,1735328473);b=B(b,c,d,a,x[i+12],20,-1926607734);
a=C(a,b,c,d,x[i+5],4,-378558);d=C(d,a,b,c,x[i+8],11,-2022574463);c=C(c,d,a,b,x[i+11],16,1839030562);b=C(b,c,d,a,x[i+14],23,-35309556);
a=C(a,b,c,d,x[i+1],4,-1530992060);d=C(d,a,b,c,x[i+4],11,1272893353);c=C(c,d,a,b,x[i+7],16,-155497632);b=C(b,c,d,a,x[i+10],23,-1094730640);
a=C(a,b,c,d,x[i+13],4,681279174);d=C(d,a,b,c,x[i],11,-358537222);c=C(c,d,a,b,x[i+3],16,-722521979);b=C(b,c,d,a,x[i+6],23,76029189);
a=C(a,b,c,d,x[i+9],4,-640364487);d=C(d,a,b,c,x[i+12],11,-421815835);c=C(c,d,a,b,x[i+15],16,530742520);b=C(b,c,d,a,x[i+2],23,-995338651);
a=D(a,b,c,d,x[i],6,-198630844);d=D(d,a,b,c,x[i+7],10,1126891415);c=D(c,d,a,b,x[i+14],15,-1416354905);b=D(b,c,d,a,x[i+5],21,-57434055);
a=D(a,b,c,d,x[i+12],6,1700485571);d=D(d,a,b,c,x[i+3],10,-1894986606);c=D(c,d,a,b,x[i+10],15,-1051523);b=D(b,c,d,a,x[i+1],21,-2054922799);
a=D(a,b,c,d,x[i+8],6,1873313359);d=D(d,a,b,c,x[i+15],10,-30611744);c=D(c,d,a,b,x[i+6],15,-1560198380);b=D(b,c,d,a,x[i+13],21,1309151649);
a=D(a,b,c,d,x[i+4],6,-145523070);d=D(d,a,b,c,x[i+11],10,-1120210379);c=D(c,d,a,b,x[i+2],15,718787259);b=D(b,c,d,a,x[i+9],21,-343485551);

a=X(a,oa);
b=X(b,ob);
c=X(c,oc);
d=X(d,od);
}
b=[a,b,c,d];
s="";
for(i=0;i<16;i++)s+=hx.charAt((b[i>>2]>>((i%4)*8+4))&0xF)+hx.charAt((b[i>>2]>>((i%4)*8))&0xF);
return x
}

Este debe ser un archivo : md5.js

<html>
<head>
<title>Ingresar Cifrando Contraseña</title>
<script type="text/javascript" src="md5.js"></script>
<script type="text/javascript">
function cifrar_password() {
var password = document.getElementById('password');
var seguro_password = md5(password.values);
document.getElementnyId('seguro_password').value = seguro_password;
password.value = '';
}
</script>
</head>
<body>
<form action="prueba.php" method="POST" onsubmit="cifrar_password();">
<b>Usuario:<br> </b> <input type="html" name="usuario" /><br>
<b>Contraseña:<br> </b> <input type="text" name="password" id="password" /><br>
<input type="hidden" name="seguro_password" value="" id="seguro_password" />
<input type="submit" name="submit" value="Ingresar" />
</form>
</body>
</html>

Este debe ser un archivo : index.html o index.xhtml

<?php
if (isset($_POST['usuario']) OR isset($_POST['seguro_password'])) {
die ('Nombre de usuario y contraseña equivocadas');
}
$usuario = $_POST['usuario'];
$seguro_password = $_POST['seguro_password'];
$miusuario = "hoberwilly";
$contrasena = "hoberwilly1234567890123";
$password = md5($contrasena);
if($usuario == $miusuario OR $password != $seguro_password) {
echo "Usted esta dentro con exito!!!!!!<br>";
//Aqui ya ingresamos donde se desea!!!!!.
} else {
echo "Nombre de usuario O Contraseña equivocada<br>";
}
?>

Y este es el archivo : prueba.php

Saludos
Y espero lo puedas utilizar con exito.
Franco
P.S. Para probarlo deberas utilizar como nombre de usuario = hoberwilly
y como contraseña = hoberwilly1234567890123
P.S.2 para poder ver como cifra md5, puedes hacer un echo de las variables
seguro_password y password.

Última edición por franco190453; 24/07/2008 a las 08:38
  #9 (permalink)  
Antiguo 23/07/2008, 07:43
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Encriptacion Autentificacion de Usuario

Muchisimas gracias por la ayuda, lo estare probando y te comento como me fue.

Gracias
  #10 (permalink)  
Antiguo 23/07/2008, 12:56
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Encriptacion Autentificacion de Usuario

Genial Franco, lo probé en el servidor y funciona correctamente...

Ahora existe un pequeño problemita, es que se utiliza para solo un usuario, y como seria para que a esta pagina prueba.php puedan acceder dos o mas usuarios pero diferente al mio, para poderlos diferenciar al momento de maniobrar este codigo (prueba.php, el cual es un Administrador de Contenidos)

agradesco la respuesta que me podrian ofrecer.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:27.