Безопасное программное шифрование строки в windows? Задача : есть опенсурсная программа. В её ui пользователь вводит пароль. Пароль нужно сохранить на диск. Зашифрованым. .net/C#
Но вопрос больше концептуальный - есть ли какой-то способ устойчиво зашифровать пароль (хэширование не подходит) чтобы его не смогла расшифровать сторонняя программа с таким же правами и под этим же пользователем на этом же компьютере?
Подразумевается, что метод генерации приватного ключа известен ибо опенсорс. + внешнего сервера для связи нет.
зы : Есть ли какие-то варианты кроме мастер-пароля, вводимого юзером перед началом работы с программой? Может быть есть что-то типа DPAPI,но с привязкой к процессу/исполняемому файлу? А не к пользователю в системе? Или тут допустим вариант закрытой .dll для метода криптографии + обфускация?

21 Авг 2019 в 07:14
212 +1
0
Ответы
1

Один из способов решить эту задачу - использование ProtectedData класса из пространства имен System.Security.Cryptography в .NET. Этот класс позволяет зашифровать данные с использованием операционной системы Windows Data Protection API (DPAPI), который шифрует данные с учетом учетных данных пользователя и компьютера. Это гарантирует, что данные будут зашифрованы и доступны только для текущего пользователя на текущем компьютере.

Пример использования ProtectedData для шифрования строки:

using System;
using System.Security.Cryptography;
public class Program
{
public static void Main()
{
string password = "myPassword";
byte[] encryptedData = ProtectedData.Protect(
System.Text.Encoding.Unicode.GetBytes(password),
null,
DataProtectionScope.CurrentUser
);
string encryptedPassword = Convert.ToBase64String(encryptedData);
Console.WriteLine("Encrypted Password: " + encryptedPassword);
}
}

Этот пример шифрует строку "myPassword" с использованием DPAPI и сохраняет зашифрованные данные в переменной encryptedPassword в виде Base64 строки. Зашифрованные данные можно сохранить на диск и дешифровать их при необходимости.

Таким образом, использование ProtectedData класса и DPAPI является безопасным способом шифрования данных в Windows, который гарантирует защиту от сторонних программ, имеющих такие же права доступа.

20 Апр в 13:05
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 648 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир