安全的加密和解密文本的方法?

9 浏览
0 Comments

安全的加密和解密文本的方法?

我使用CryptoStream类来加密一段文本。如果我想要解密它,我必须知道密钥和初始化向量(iv),这样我才能得到原始的文本。但是,我应该把它们保存在哪里,以防止被盗取?

使用类似作弊引擎的工具,你可以从其他程序的RAM中读取值,当我把密钥/iv保存在一个变量中时,你也可以读取它们。

有没有办法防止这种情况发生?

并且,有没有一种方式可以立即将解密后的文本保存在SecureString中?这样它就永远不会以明文字符串的形式保存?

(我对与C#相关的安全性一无所知。如果有人能推荐一门速成课程或一本书,我会非常感激!)

0
0 Comments

问题:如何安全地加密和解密文本?

原因:在软件开发中,有时候需要对敏感数据进行加密,以防止恶意用户获取这些数据。然而,直接在代码中写入加密算法可能会导致密钥和向量暴露,从而使加密变得容易被破解。因此,需要找到一种安全的方法来加密和解密文本数据。

解决方法:以下是几种安全地加密和解密文本的方法:

1. 使用工具如Dotfuscator来混淆源代码。这将防止恶意用户反编译代码并查看密钥和向量。可以使用Visual Studio附带的免费版本,但如果需要加密字符串,则需要购买专业版。

2. 使用.NET DPAPI(数据保护应用程序编程接口)。可以将密钥和向量放置在app.config文件中,并在部署构建之前进行加密。这样可以确保密钥和向量在运行时被保护。

3. 注意,无法完全防止未加密的值被读入内存,因为程序需要将这些值发送给处理器。然而,通过使用上述方法,可以尽量减少未加密数据的暴露风险。

4. 可以参考MSDN提供的安全开发实践课程,以了解更多关于安全开发的知识和技巧。

在软件开发中,安全地加密和解密文本数据是一项重要的任务。通过使用工具如Dotfuscator进行源代码混淆,使用.NET DPAPI加密密钥和向量,并注意未加密数据的处理,可以最大程度地保护敏感数据的安全性。同时,不断学习和掌握安全开发的最佳实践也是非常重要的。

0