Как написать сайт на джаве с паролем
Перейти к содержимому

Как написать сайт на джаве с паролем

  • автор:

Курсы javascript

Вопрос: как совместить эти два кода, что бы все было логично и последовательно, а не так как сейчас?

Код:
var login = prompt(‘Введите логин!’);
if(login == ‘admin’) prompt(‘Введите пароль!’);
> else if(login == null) alert(‘Отмена’);
> else alert(‘В доступе отказано’);
>

var pass = prompt(‘Введите пароль!’);

if(pass == ‘passw’) alert(‘Welcome Home’);
> else if(pass == null) alert(‘Отмена’);
> else alert(‘Неверный пароль’);
>

Как хранить пароли java

Хранение паролей — это важная часть безопасности приложения. В Java для этого существует несколько подходов. Рассмотрим некоторые из них:

  1. Хранение паролей в виде хэш-значений. Хэш-функции — это математические функции, которые преобразуют исходные данные в уникальную строку фиксированной длины. Хэш-значение пароля можно хранить в базе данных или файле вместо самих паролей. При аутентификации пользователя сравнивается хэш-значение его введенного пароля с хэш-значением, сохраненным в базе данных или файле.

В Java для работы с хэш-функциями можно использовать класс java.security.MessageDigest Вот пример кода:

import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Base64; public class PasswordHashingExample  public static void main(String[] args) throws NoSuchAlgorithmException  String password = "password123"; // Создаем объект MessageDigest с использованием алгоритма SHA-256 MessageDigest md = MessageDigest.getInstance("SHA-256"); // Преобразуем пароль в байтовый массив и вычисляем хэш-значение byte[] hash = md.digest(password.getBytes()); // Кодируем хэш-значение в Base64 и выводим на экран String encodedHash = Base64.getEncoder().encodeToString(hash); System.out.println("Хэш-значение пароля: " + encodedHash); > > 
  • В этом примере мы создаем объект MessageDigest с использованием алгоритма SHA-256
  • Затем мы преобразуем пароль в байтовый массив и вычисляем его хэш-значение.
  • В конце мы кодируем хэш-значение в Base64 и выводим на экран.

11 апреля 2023

2 Хранение паролей с использованием библиотеки BCrypt.

BCrypt — это алгоритм хэширования паролей с солью, который обеспечивает дополнительный уровень безопасности. В Java для работы с BCrypt можно использовать библиотеку org.mindrot.jbcrypt

Вот пример кода:

import org.mindrot.jbcrypt.BCrypt; public class PasswordHashingExample  public static void main(String[] args)  String password = "password123"; // Генерируем соль и хэш-значение пароля String salt = BCrypt.gensalt(); String hashedPassword = BCrypt.hashpw(password, salt); // Проверяем пароль if (BCrypt.checkpw(password, hashedPassword))  System.out.println("Пароль верный"); > else  System.out.println("Пароль неверный"); > > > 
  • В этом примере мы генерируем соль и хэш-значение пароля с использованием метода BCrypt.gensalt() и BCrypt.hashpw()
  • Затем мы проверяем пароль с использованием метода BCrypt.checkpw() . Если метод возвращает true , то пароль верный. Если метод возвращает false , то пароль неверный.

Этот подход обеспечивает дополнительный уровень безопасности благодаря использованию соли.

Соль — это случайно сгенерированная строка, которая добавляется к паролю перед хэшированием. Соль обеспечивает уникальность хэш-значения для каждого пароля, даже если пароли идентичны. Это усложняет задачу злоумышленникам, которые пытаются взломать пароли, используя таблицы ранее вычисленных хэш-значений (так называемые «таблицы радуг»).

svetavv90 / TestForm

Создать JSP страницу, на которой будет выводится форма для ввода логина и пароля. Введенные данные должны отправляться на обработку в сервлет. При загрузке страницы в поле логин должен отображаться последний введенный логин.

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

package Pac;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
public class TestForm extends HttpServlet
public static String res;
public List name = new LinkedList();
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException
int j=0;
for(int i =0; i < name.size(); i++)
j=i;
>
if(name.size()>0)
res = name.get(j);
else res = «null»;
final String firstName = req.getParameter(«Login»);
final String lastName = req.getParameter(«password»);
name.add(firstName);
for(String names:name)
resp.getWriter().println(names);
>
>
>

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

JSON отправка логина и пароля

введите сюда описание изображения

Подскажите пожалуйста, правильно ли я отправляю логин и пароль? Я должен через java отправить чтоб получилось так: Вот мой код:

 @Override protected Map getParams() throws AuthFailureError < HashMapmap=new HashMap<>(); map.put("login", txtLogin.getText().toString()); map.put("password",txtPassword.getText().toString()); return map; > >; 

Но я получаю ошибку 422

Отслеживать

задан 28 окт 2020 в 8:33

21 6 6 бронзовых знаков

Не очень понятно, что должен делать приведенный код и зачем он вообще Вам нужен. Воспользуйтесь Gson или Moshi или еще какой-нибудь библиотекой, умеющей переводить обычные классы в формат json.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *