Фактически, частные методы реализованы на C#, которые все еще можно найти с помощью Reflection
.Как написать «по-настоящему» частный метод в C#?
Что я буду делать, это написать public string Encrypt(string data)
и private string Decrypt(string cipher)
методы для выполнения шифрования и дешифрования.
К сожалению, если кто-то знает платформу .NET, он может использовать Reflection
, чтобы найти методы Decrypt
и расшифровать все, что зашифровано.
Кажется, что это не так безопасно. Поэтому я хочу сделать Decrypt
метод действительно частный метод.
Но как это сделать?
Обновлено 09 янв 2012 10:52 PM Sydney Время
bdares обеспечивает техническое объяснение этого вопроса
Эрик Липперт обеспечивает политическое объяснение этого вопроса
Спасибо и expe ртс!
Хорошие очки. Вы также можете сказать, что 'private' не является концепцией безопасности. Я думаю, это распространенное заблуждение. –
Я согласен с вашими точками. Вы решили мой вопрос ** технический **. Другой вопрос: означает ли это, что есть ** NO ** действительно безопасная программа, которую мы можем сделать, если пользователь получил двоичную программу? –
@AlexYeung: «действительно безопасно» ** против какой угрозы **? Вы можете сделать действительно безопасные программы; вы делаете это, когда * стоимость * для злоумышленника из них, делающего добро на их * угрозу * выше, чем * выгода *, которую они достигают благодаря успешной атаке. Опишите угрозу и преимущества успешной атаки, и только тогда вы можете создать систему безопасности в качестве ответа. –