C# 我的.NET应用程序可以自行或部分自动加密吗?

C# 我的.NET应用程序可以自行或部分自动加密吗?,c#,.net,encryption,C#,.net,Encryption,我有一份申请表“A”。 我有第二个名为“B”的应用程序,用于运行“a” 要运行“A”,首先运行“B”,然后输入密码,“B”解密“A”,然后执行“A” 现在的问题是,当我关闭“A”时,我希望它重新加密!现在唯一的方法是再次运行“B”加密,然后退出B 我可以在关闭“A”时运行“B”作为关闭路由,然后再次加密“A” 但是 如果不是因为某种原因关闭“A”,而是它崩溃了呢?我需要一种方法来确保当我终止进程“a”时,它会自动重新加密 有什么建议吗?正如其他人所暗示的,你更有可能制造问题,然后解决任何问题。“

我有一份申请表“A”。 我有第二个名为“B”的应用程序,用于运行“a”

要运行“A”,首先运行“B”,然后输入密码,“B”解密“A”,然后执行“A”

现在的问题是,当我关闭“A”时,我希望它重新加密!现在唯一的方法是再次运行“B”加密,然后退出B

我可以在关闭“A”时运行“B”作为关闭路由,然后再次加密“A”

但是

如果不是因为某种原因关闭“A”,而是它崩溃了呢?我需要一种方法来确保当我终止进程“a”时,它会自动重新加密


有什么建议吗?

正如其他人所暗示的,你更有可能制造问题,然后解决任何问题。“B”中的代码可以使用自由软件进行检查(例如,ILSpy)——恶意开发人员在不使用密码的情况下创建自己的“B”版本需要不到半小时的时间


除此之外:您不应该解密磁盘上的“A”-即使是初学者也可以在关闭“A”之前复制粘贴结果。为了解决这个问题,“B”必须解密“A”并从单独的AppDomain中的内存运行“A”

你想解决什么问题?为什么你认为加密是一种解决方案?我打赌加密密钥以明文形式存储在“a”中,更可能的是密钥存储在“B”中,即使不是,我也肯定它会告诉你如何找到它。@m.Babcock:hehe。所有A:s和B:s均由head start制造,以旋转;)那么你加密程序是为了阻止自己读取加密的程序?再次说明:您提出的安全问题没有首先描述威胁或攻击者。没有人能在不知道攻击是什么的情况下给你一个关于建立防御的合理答案。谢谢你的重播。不,你们错了,让我来说明原因。开放设计原则表明,方案的安全性不依赖于增加的复杂性和其设计的保密性。现在,我的B加密程序在执行时要求输入一个密钥。密钥是使用PBKDF2生成的。无论如何,没有硬编码密钥。我需要加密程序A的原因是因为我需要保密性。A必须是机密的,在这种情况下,这意味着使用AES256加密。很明显,该程序从未由能够复制粘贴它的用户执行。我唯一的威胁是,一旦进程因某种原因关闭/终止,就不会重新加密。