Автор Тема: Да проверя паролата  (Прочетена 478 пъти)

tyrex

  • Новаци
  • *
  • Публикации: 1
    • Профил
Да проверя паролата
« -: Jul 02, 2024, 13:37 »
Инсталирах един open source free project.
Регистрирах се, влезнах в базата данни - виждам че паролата ми за вход е криптирана.
Искам да отворя тази MySQL таблица чрез мое приложение, което ще разработя на Free Pascal.
Как обаче ще проверя дали въведената парола отговаря на криптираната? ( Разбира се аз си знам истинската парола, но по принцип )
Активен

Nik123

  • Напреднали
  • *****
  • Публикации: 3300
  • Distribution: Mageia, Q4OS
    • Профил
Re: Да проверя паролата
« Отговор #1 -: Jul 08, 2024, 13:45 »
T.e. въпросът е как да декриптирате паролата?
Активен

nslave

  • Напреднали
  • *****
  • Публикации: 160
  • Distribution: Fedora / Debian
  • Window Manager: Xfce
    • Профил
Re: Да проверя паролата
« Отговор #2 -: Jul 08, 2024, 15:30 »
Малко вероятно е паролата да е криптирана. Най-вероятно е хеширана. Необходимо ти е да знаеш какъв алгоритъм за хеширане използва въпросният софтуер. Много вероятно е да използва и някакъв вид 'посоляване' на паролата преди да я хешира. След като разбереш какви са хеш функцията и солта, може в твоето приложение да ги прилагаш на входните данни и да сверяваш резултата със съхранената информация в базата данни.
Активен

4096bits

  • Напреднали
  • *****
  • Публикации: 6351
    • Профил
Re: Да проверя паролата
« Отговор #3 -: Jul 08, 2024, 19:49 »
Сравнително по-новите алгоритми са Argon2, Bcrypt, Scrypt, PBKDF2. Eвентуално SHA256, ако са били немарливи.
За солта вече се каза.

Не съм сигурен, че изобщо би те засягало, дали хешираната парола отговора на нещо, което би пратил като твоя парола. Тя ще бъде хеширана отново и сравнена със хеш сумата при тях.
Ако ти се занимава, е отделен въпрос. Тъкмо ще видиш, как става.

Това е един от начините, по който аз създавам пароли при регистрации.
Измислям си фраза са съответния сайт или каквото ще да е и което няма как да забравя, защото е в прав текст и след това го пускам на md5sum, което ми изплюва последователност от 32 символа букви и цифри. И ползвам това за парола. Не ги помня, изчислявам ги. Много по-лесно и удобно, а и паролите са силни, защото са бая дългички.
« Последна редакция: Jul 08, 2024, 19:53 от 4096bits »
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

kuunlaaksot

  • Напреднали
  • *****
  • Публикации: 177
  • Distribution: CRUX
    • Профил
Re: Да проверя паролата
« Отговор #4 -: Jul 09, 2024, 10:51 »
md5sum изплюва само малки букви и цифри, което само по себе си не е точно ОК за парола. Всъщност, защо просто не ползваш фразата на български за парола?
Активен

lunarvalleys

4096bits

  • Напреднали
  • *****
  • Публикации: 6351
    • Профил
Re: Да проверя паролата
« Отговор #5 -: Jul 09, 2024, 11:47 »
Защото е смислена.
С един подходящ речник може да се направят много бели.

32 символа буквено-цифрена последователност са достатъчно дълга парола, за да я мъчат дълго време при сегашните възможности на машините. Много по-трудна за разбиване е, отколкото големи, малки букви и няколко символа или цифри, но по-къса парола.
По-сигурно е дори срещу brute force.

Можеш и сам да провериш, че ако имаш набор от десет цифри, малки и големи букви и знаци, които са да речем грубо 72 символа и ако паролата ти е с дължина от осем символа, възможните комбинации с повтаряне са 26,088,783,435.

Ако имаш шестнадесет символа и 32 символа дълга парола, възможните комбинации са 751,616,304,549

Повечето хора избират пароли с дължина от осем символа, защото по-лесно се помни, а това е минимума при повечето системи за вход.

Код:
import math

pool = 72 # бройка на символите на разположение
passwd_len = 8 # дължина на паролата

combinations = math.comb(pool + passwd_len -1, passwd_len)
print(f"{combinations:,}")

Това е примерен код на Python.

За да увелича неимоверно възможния брой комбинации при md5 паролата, само трябва да я прекарам през още една операция - base64.

Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.