Использование Scrypt и Bcrypt C#

212
27 августа 2018, 23:40

Как использовать Scrypt или Bcrypt в C#. Прошерстил несколько сайтов и форумов, но не вижу никаких объяснений, как скачать и установить библиотеку для Scrypt и Bcrypt.

Answer 1

Пользовать так

string passwordHash = BCrypt.HashPassword("my password");

Вся документация доступна здесь.

Answer 2

В monodevelop на ubuntu делается так:

А используется так:

try
        {
            string pass = BCrypt.Net.BCrypt.HashPassword(Console.ReadLine());
        }catch(Exception e){
            Console.Write(e);
        }
Answer 3

А вот реализация создания и верификации хэшей! (Критикуйте) Чтобы это работало, нужно сделать то, что на скриншотах выше. Прграмма не имеет смысла просто реализация.

using System;
using System.IO;
namespace myself
{
    class MainClass
{
    public static void Main(string[] args)
    {
        Select();
    }
    static void Func()
    {
        try
        {
            string txt = "";
            Console.Write("Type text - ");
            while (true)
            {
                ConsoleKeyInfo j = Console.ReadKey(true);
                if (j.Key == ConsoleKey.Enter)
                {
                    Console.Write("\n");
                    break;
                }
                else
                {
                    txt += j.KeyChar;
                    Console.Write("*");
                }
            }
            string password = 
            BCrypt.Net.BCrypt.HashPassword(txt.Trim());
            File.WriteAllText("pass", password);
            Select();
        }
        catch (Exception e)
        {
            Console.Write(e);
        }
        Verify();
    }
    static void Verify()
    {
        try
        {
            string key = "";
            Console.Write("Type text to check - ");
            while (true)
            {
                ConsoleKeyInfo i = Console.ReadKey(true);
                if (i.Key == ConsoleKey.Enter)
                {
                    Console.Write("\n");
                    break;
                }
                else
                {
                    key += i.KeyChar;
                    Console.Write("*");
                }
            }
            bool check = BCrypt.Net.BCrypt.Verify(key.Trim(), File.ReadAllText("pass"));//булевская переменная для проверки
            if (check == true)
            {
                Console.Write("true\n");
            }
            else
            {
                Console.Write("false\n");
            }
        }
        catch (Exception ex)
        {
            Console.Write(ex);
        }
        Verify();
    }
    static void Select(){
        try
        {
            if (!File.Exists("pass"))
            {
                Func();
            }
            else
            {
                Verify();
            }
        }catch(Exception ex){
            Console.Write(ex);
        }
    }
}

}

READ ALSO
Шанс выпадение предметов(drop chance) в Unity3d

Шанс выпадение предметов(drop chance) в Unity3d

Сразу говорю, что ответ, скорее всего, лежит у меня перед глазами, но я его, как обычно, не вижу(А ещё, скорее всего, я запутался xD) Есть код, в котором...

218
Unity, посмотреть туда, куда смотрит камера

Unity, посмотреть туда, куда смотрит камера

Есть скрипт для оружияМы пускаем рейкаст, и когда попадаем им, смотрим на точку попадения

193
Проверка значения на “старость”

Проверка значения на “старость”

Есть переменнаяОна в бесконечном цикле выдаёт значения типа:

184
Не перебирает адреса в базе правильно

Не перебирает адреса в базе правильно

Я составил скрипт, который перебирает адреса в моей таблице и отмечает отправленные

187