Курсы 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 для этого существует несколько подходов. Рассмотрим некоторые из них:
- Хранение паролей в виде хэш-значений. Хэш-функции — это математические функции, которые преобразуют исходные данные в уникальную строку фиксированной длины. Хэш-значение пароля можно хранить в базе данных или файле вместо самих паролей. При аутентификации пользователя сравнивается хэш-значение его введенного пароля с хэш-значением, сохраненным в базе данных или файле.
В 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.