2015-10-11 26 views
0

У меня есть проблема, с которой вы можете мне помочь; У меня есть программа, написанная на C#, но эта программа использует некоторые пароли, которые необходимо скрыть от кого-либо (очень важно)компилировать код на аппаратное обеспечение для критических операций

, но, как никто знает, кто-нибудь может декомпилировать exe или любую DLL для моей программы и узнать эти пароли используя простые или сложные способы.

Я думаю, что для установки моего кода, который имеет эти пароли на аппаратном модуле, подключенном к ПК, на котором работает моя программа; и моя программа связана с этим оборудованием.

есть ли какой-либо аппаратный модуль, который я могу найти для использования в моей программе?

+0

Вы изучали такие вещи, как аутентификация HMAC или криптография с открытым ключом? Я думаю, что его вероятность того, что вы можете построить годы исследований в криптографии здесь. –

+0

это программное обеспечение, если я сделал это в dll-файле, любой может декомпилировать его и узнать пароли –

ответ

0

Лучше никогда не писать конфиденциальную информацию напрямую в программе. Кроме того, такие данные никогда не должны храниться как обычный текст.

Вместо этого попробуйте сохранить эту информацию в базе данных (даже локальной, в зависимости от ваших потребностей), с помощью MD5 или SHA1. Хешированный пароль не должен быть обратимым обратно к оригиналу.

Когда пользователь входит в систему, вы просто используете тот же хеш-код для хэша, который набрал пароль, и сравните его с хэшированным в базе данных. Если они совпадают, это означает, что пользователь ввел правильную информацию.

+0

эти пароли не являются данными для входа. эти пароли, такие как пароли для серверов sql на нескольких серверах, которые приложение использует для подключения к Я хочу, чтобы это было просто, чтобы использовать его в строке подключения, поэтому я не могу использовать хеширование, и если это простой текст на C# dll файл любой может декомпилировать его и знать. –

+0

... так почему же нельзя использовать симметричное шифрование, такое как AES или змей, чем? Если в какой-то момент вы запускаете код на машине, данные будут попадать в RAM любым способом и могут быть сброшены оттуда. Поэтому, если вы собираетесь хранить что-то подобное, вы можете использовать симметричное шифрование и ввести пароль или даже использовать с ним смарт-карту при запуске программы, тем самым сохраняя данные на диске в безопасности. –

+0

... также MD5 или SHA1 больше не должны идти к вариантам хэшей. Существуют более безопасные алгоритмы хеширования, и даже некоторые специализированные для данных паролей {scrypt, bcrypt ...}. –