gpt4 book ai didi

.net - 您如何在 .Net 中安全地存储加密 key ?

转载 作者:行者123 更新时间:2023-12-02 07:51:45 26 4
gpt4 key购买 nike

如果您有 .Net 应用程序(或与此相关的任何其他应用程序),您如何安全地存储内部加密 key ?我不是在谈论用户输入的 key ,而是在程序本身中硬编码的 key ,用于在程序的其他实例之间进行通信。例如,如果您有一个点对点类型的程序,您可能想要加密数据包,以确保您正在与您的 程序的另一个实例对话,而不是其他人的。我的解决方案是将 key 硬编码到客户端中,然后简单地加密/解密所有内容。

不过,我想知道在 .Net 中这样做是否安全。我没有广泛使用 Reflector 或任何类似的东西,但据我所知,从 CIL 解构 .Net 应用程序听起来相当容易。对于拥有这些应用程序之一的人来说,去寻找我的神奇数字是否微不足道?

最佳答案

绝对没有办法验证连接另一端的可执行文件是否是您编写的。如果你用一个 key 加密一个 key ,你把第二个 key 存放在哪里?如果您使用服务器的 Diffie-Hellman 来获取 key ,那么您将该 key 存储在哪里? (提示:在内存中,可以从那里转储然后读取)。这是一个您永远无法解决的递归问题。

我读到 AOL Instant Messenger 的服务器会定期轮询 AIM 客户端以获取特定代码地址的散列值(即计算 SHA1(address1 -> address2)),如果散列值不正确则断开客户端连接。这是因为重新分发可执行文件是非法的(并且在每两个间隔之间构建哈希表是不可行的),因此这只是一个法律挑战,而不是技术挑战。

如果您想要真正努力击败逆向工程(并且实际上做得很好)的软件,请尝试将调试器附加到 Skype :-)

关于.net - 您如何在 .Net 中安全地存储加密 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3419037/

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