logo Школа богатых программистов

MetaMask makes it simple to buy, swap and sell Coins



Сгенерировать приватный ключ в C#

В этом посте будет обсуждаться, как сгенерировать приватный ключ хеш SHA-256 строки в C#.

Вы можете использовать SHA256 class для вычисления хэша SHA-256. Чтобы вычислить хэш-значение SHA256 строки, сначала инициализируйте хэш-объект SHA256, используя функцию SHA256.Create() метод и преобразовать данную строку в массив байтов с Encoding.GetBytes() метод. Затем вычислите хеш-значение для указанного массива байтов, используя функцию ComputeHash() метод. Наконец, вы можете преобразовать массив байтов в 64-символьную строку в шестнадцатеричном формате, как показано ниже:

using System;
using System.Text;
using System.Security.Cryptography;
 
public class Example
{
    static string ComputeSHA256(string s)
    {
        string hash = String.Empty;
 
        // Инициализировать хеш-объект SHA256
        using (SHA256 sha256 = SHA256.Create())
        {
            // Вычислить хэш заданной строки
            byte[] hashValue = sha256.ComputeHash(Encoding.UTF8.GetBytes(s));
 
            // Преобразование массива байтов в строковый формат
            foreach (byte b in hashValue) {
                hash += $"{b:X2}";
            }
        }
 
        return hash;
    }
 
    public static void Main()
    {
        string hash = ComputeSHA256("Hello World");
        Console.WriteLine(hash);
    }
}
результат: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

Обратите внимание, что SHA256 класс требует System.Security.Cryptography пространство имен. Вы также можете использовать SHA256Managed класс, но он устарел. С использованием new SHA256Managed() инициализация хеш-объекта SHA256 приведет к предупреждению SYSLIB0021: «SHA256Managed» устарело: «Производные криптографические типы устарели. Вместо этого используйте метод Create для базового типа.'. Вот еще более короткая версия приведенного выше кода, которая заменяет foreach петля с BitConverter.ToString() метод:

using System;
using System.Text;
using System.Security.Cryptography;
 
public class Example
{
    static string ComputeSHA256(string s)
    {
        using (SHA256 sha256 = SHA256.Create())
        {
            // Вычислить хэш заданной строки
            byte[] hashValue = sha256.ComputeHash(Encoding.UTF8.GetBytes(s));
 
            // Преобразование массива байтов в строковый формат
            return BitConverter.ToString(hashValue).Replace("-", "");
        }
    }
 
    public static void Main()
    {
        string hash = ComputeSHA256("Hello World");
        Console.WriteLine(hash);
    }
}
результат: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

Если вы используете .NET 5 и выше, вы можете использовать Convert.ToHexString() метод для преобразования массива байтов в его эквивалентное строковое представление.

using System;
using System.Text;
using System.Security.Cryptography;
 
public class Example
{
    static string ComputeSHA256(string s)
    {
        using (SHA256 sha256 = SHA256.Create())
        {
            byte[] hashValue = sha256.ComputeHash(Encoding.UTF8.GetBytes(s));
            return Convert.ToHexString(hashValue);
        }
    }
 
    public static void Main()
    {
        string hash = ComputeSHA256("Hello World");
        Console.WriteLine(hash);
    }
}
результат: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

Создайте свой публичный адрес из полученного приватного ключа: Converter.html
Школа богатых программистов - 7495.org/kurs.htm

Статья оказалась полезной? Будем благодарны за лайки и репосты, расскажите друзьям чему Вы научились! (кнопки соц сетей снизу)