gpt4 book ai didi

c# - 如何在C#中写一个 "truly"私有(private)方法?

转载 作者:太空狗 更新时间:2023-10-29 23:54:05 27 4
gpt4 key购买 nike

事实上,私有(private)方法是在C#中实现的,仍然可以通过Reflection进行搜索。

我要做的是编写public string Encrypt(string data)private string Decrypt(string cipher)方法来进行加密和解密。

不幸的是,如果有人知道 .NET 框架,他可以使用 Reflection 找到 Decrypt 方法,它会解密所有加密的内容。

看来这不是那么安全。所以我想将Decrypt方法变成真正私有(private)方法。

但是怎么做呢?


悉尼时间 2012 年 1 月 9 日晚上 10:52 更新

bdares 提供了这个问题的技术解释

Eric Lippert 提供了这个问题的政治解释

感谢两位专家!

最佳答案

你不能。如果攻击者可以访问您的代码、编译代码或源代码,他就可以跟踪您的程序并找到它在哪里被加密或解密。

您可以通过将 key 存储在单独的位置来增加一层安全性,但通常如果攻击者在您的服务器上执行代码,您就已经完蛋了。

(如果攻击者正在您的服务器上执行代码,您只需要担心这一点,否则该方法是否私有(private)并不重要。此外,他不能使用反射来查找方法名称,除非他是在您的服务器上执行代码。简而言之:您在这里担心的是错误的事情。)

关于c# - 如何在C#中写一个 "truly"私有(private)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8784557/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com