我有一个网络应用程序,我可以创建Tecnico
TecnicoController (应用程序网站)
$tecnico = new Tecnico;
$tecnico->idTecnico = Input::get('idtecnico');
$tecnico->Nombre = Input::get('nombre');
$tecnico->Apellido = Input::get('apellido');
$tecnico->Telefono = Input::get('telefono');
$tecnico->Contrasena = Hash::make(Input::get('idtecnico')); //<--- hash of my pass, eg pass: 12 -> hash: $12345abc
$path = public_path().'/tecnico';
$fotoPerfil = Input::file('imagen');
$fotoPerfil->move($path, Input::get('idtecnico'));
$tecnico->Foto ='/tecnico/'.$tecnico->idTecnico;
$tecnico->save();
此外,我有一个不同的项目,作为服务器从移动应用程序访问数据库。手机中的Tecnico
可以通过输入contrasena
(密码)和idTecnico
(ID)
TecnicoController (服务器)
$idUnico = Input::get('idUnico');
$contrasena = Hash::make(Input::get('contrasena')); //<--- hash of my pass: eg pass: 12 -> hash: $146435gzc (change)
$tecnico = DB::table('Tecnico')->where('idTecnico', $idUnico)->where('Contrasena', $contrasena)->first();
从服务器输入密码时会出现问题。 Hashin创建了一个存在于数据库中的不同值(创建Tecnico
时)。
我如何获得数据库中相同的哈希值?
答案 0 :(得分:1)
不幸的是,您无法在查询中轻松完成此操作,您最好的选择是抓住用户然后比较密码,就像这样。
$idUnico = Input::get('idUnico');
$tecnico = DB::table('Tecnico')->where('idTecnico', $idUnico)->first();
if($tecnico) {
if(Hash::check(Input::get('contrasena'), $technico->Contrasena)) {
// passwords are the same
}
}