Techno- Byte Ответов: 1

Код пароль для базы данных


Привет всем, моя компания приказала мне создать программу для учета рабочего времени, у нас программа работает, но это приложение для ИТ-компании эта компания закончила, и у нас нет связи с ними для технической поддержки, поэтому я запрограммировал программу так, что проблема, с которой я столкнулся, - это пароль для входа в систему. сохраняются в базе данных в зашифрованном виде, когда я вхожу в систему как пользователь, я должен войти в систему для зашифрованного пароля Я ищу функцию, используемую для шифрования пароля в отражателе .net после открытия приложения ИТ-компании, но я не понимаю строк Я ищу строки, которые я не мог понять просто, когда введите пароль, например 0, зашифрованный пароль будет 8, и вот функция, используемая для приложения ИТ-компании, я надеюсь мне помочь.

 public static string CodingPasswordFun(string OldStr)
{
    string str2;
    string str3;
    string str4;
    string str5;
    string str6;
    int num2;
    int num3 = Strings.Len(OldStr);
    for (num2 = 1; num2 <= num3; num2++)
    {
        str5 = Strings.Mid(OldStr, num2, 1);
        str2 = str2 + str5;
        if (num2 == 2)
        {
            str2 = str2 + "A";
        }
        else if (num2 == 4)
        {
            str2 = str2 + "D";
        }
        else if (num2 == 6)
        {
            str2 = str2 + "E";
        }
        else if (num2 == 8)
        {
            str2 = str2 + "L";
        }
    }
    int num4 = Strings.Len(str2);
    for (int i = 1; i <= num4; i++)
    {
        str5 = Strings.Mid(str2, i, 1);
        str6 = str6 + str5;
        switch (i)
        {
            case 3:
                str6 = str6 + "B";
                break;

            case 5:
                str6 = str6 + "E";
                break;

            case 7:
                str6 = str6 + "T";
                break;

            case 9:
                str6 = str6 + "A";
                break;
        }
    }
    int num5 = Strings.Len(str6);
    for (num2 = 1; num2 <= num5; num2++)
    {
        string str8 = Strings.Mid(str6, num2, 1);
        str4 = str4 + Conversions.ToString(Strings.Asc(str8));
    }
    int num6 = Strings.Len(str4);
    for (num2 = 1; num2 <= num6; num2++)
    {
        if ((num2 % 2) == 0)
        {
            string str7 = Strings.Mid(str4, num2, 2);
            if ((((Conversions.ToDouble(str7) >= 65.0) & (Conversions.ToDouble(str7) <= 90.0)) | ((Conversions.ToDouble(str7) >= 97.0) & (Conversions.ToDouble(str7) <= 122.0))) | (Conversions.ToDouble(str7) == 45.0))
            {
                str3 = str3 + Conversions.ToString(Strings.Chr(Conversions.ToInteger(str7)));
            }
            else
            {
                str3 = str3 + str7;
            }
        }
    }
    return str3;
}


Что я уже пробовал:

 public static string CodingPasswordFun(string OldStr)
{
    string str2;
    string str3;
    string str4;
    string str5;
    string str6;
    int num2;
    int num3 = Strings.Len(OldStr);
    for (num2 = 1; num2 &lt;= num3; num2++)
    {
        str5 = Strings.Mid(OldStr, num2, 1);
        str2 = str2 + str5;
        if (num2 == 2)
        {
            str2 = str2 + "A";
        }
        else if (num2 == 4)
        {
            str2 = str2 + "D";
        }
        else if (num2 == 6)
        {
            str2 = str2 + "E";
        }
        else if (num2 == 8)
        {
            str2 = str2 + "L";
        }
    }
    int num4 = Strings.Len(str2);
    for (int i = 1; i &lt;= num4; i++)
    {
        str5 = Strings.Mid(str2, i, 1);
        str6 = str6 + str5;
        switch (i)
        {
            case 3:
                str6 = str6 + "B";
                break;

            case 5:
                str6 = str6 + "E";
                break;

            case 7:
                str6 = str6 + "T";
                break;

            case 9:
                str6 = str6 + "A";
                break;
        }
    }
    int num5 = Strings.Len(str6);
    for (num2 = 1; num2 &lt;= num5; num2++)
    {
        string str8 = Strings.Mid(str6, num2, 1);
        str4 = str4 + Conversions.ToString(Strings.Asc(str8));
    }
    int num6 = Strings.Len(str4);
    for (num2 = 1; num2 &lt;= num6; num2++)
    {
        if ((num2 % 2) == 0)
        {
            string str7 = Strings.Mid(str4, num2, 2);
            if ((((Conversions.ToDouble(str7) &gt;= 65.0) &amp; (Conversions.ToDouble(str7) &lt;= 90.0)) | ((Conversions.ToDouble(str7) &gt;= 97.0) &amp; (Conversions.ToDouble(str7) &lt;= 122.0))) | (Conversions.ToDouble(str7) == 45.0))
            {
                str3 = str3 + Conversions.ToString(Strings.Chr(Conversions.ToInteger(str7)));
            }
            else
            {
                str3 = str3 + str7;
            }
        }
    }
    return str3;
}

ZurdoDev

Это не похоже на истинное шифрование, а скорее просто меняет символы вокруг. О чем вы нас спрашиваете?

Techno- Byte

Я прошу помочь мне зашифровать пароль если я введу 0 то зашифрованный будет 8

Dave Kreskowiak

Это для серьезного производственного приложения или вы просто играете с Шифр Цезаря[^]? Это не серьезное шифрование, которое вы должны использовать сегодня.

На самом деле вы даже не шифруете пароли. Вы используете криптографический хэш на них и храните хэш, а не сами пароли.

ZurdoDev

В интернете есть масса примеров, так как же мы можем помочь?

Richard MacCutchan

Ваш код все еще не защищен. Перейдите по ссылке, предоставленной Грэмом Грантом ниже, и узнайте, как правильно управлять своими паролями.

1 Ответов

Рейтинг:
2

Graeme_Grant

Эта ссылка поиска Google дает вам много различных способов сделать то, что вы просите: c# password encryption 2017 - поиск в Google[^]

Выберите тот, который дает вашему клиенту необходимую безопасность.