этот код написан в validation.js для динамической проверки всех паролей смены пароля

$.validator.addMethod("matchp", function(value, element) { var dbpass = $("#old").val(); // #old value is fetch from database in type=hidden in frontend and its in bcrypt format. var txtpass = bcrypt($("#oldpass").val()); // #oldpass value is fetch from frontend its user value and it sholud convert in bcrypt format. // So that we can compare it to verify the old password while changing the old password. // Check for equality with the password inputs if (dbpass != txtpass ) { return false; } else { return true; } }, "Your Passwords Must Match"); 

Функция Bcrypt означает алгоритм, который каждый раз дает разные хеш-значения для уникальной строки с некоторой другой солью. Поэтому невозможно проверить его с помощью какого-либо плагина проверки JS. Конечно, вы можете проверять различные значения поля ввода без использования какой-либо техники хеширования, как при проверке пароля и подтверждении полей пароля.

Если вам действительно необходимо использовать bcrypt на стороне клиента, используйте статическую соль.

Обновлено, если вы используете @ Nevins-b JavaScript Bcrypt плагин, то вы можете сделать это, используя ту же соль для проверки различных полей.

Надеюсь, что это удовлетворительно для вашего вопроса.

Это не сработает, потому что пароли Laravel также засолены.

Что бы я сделал, это

  • Передайте #oldpass незашифрованный на ваш сервер с помощью ajax
  • На вашем бэкэнде сравните #oldpass с текущим паролем, используя Hash::check

    if(Hash::check($request-{amp}gt;oldpass, Auth::user()-{amp}gt;password)){ return true;
    }else{ return false; }

Не забудьте добавить фасады в верхней части вашего контроллера Laravel

 use IlluminateSupportFacadesAuth; use IlluminateSupportFacadesHash;