我有以下情况:
不同机器中的多个应用程序将使用RSA加密技术共享存储在数据库中的信息。
今天我这样做的方式不是更安全的方式。这些机器共享一个包含XML的RSA密钥的DLL。
如何使用此XML中的信息在不同的计算机中生成计算机密钥,之后,我如何在RSACryptoServiceProvider中使用它们?
答案 0 :(得分:2)
我过去做过的事情:(这只是一个大纲;如果你需要实际代码,我可以提供它,但听起来你的问题只是寻找想法。)
必须在每台机器上执行以下操作。 (您可以创建一个简单的控制台应用程序来执行此操作,或者创建PowerShell脚本。)
ProtectedData.Protect
加密密钥在您的应用中,使用ProtectedData.Unprotect
获取密钥,然后将其传递给RSACryptoServiceProvider
进行加密和解密。
答案 1 :(得分:1)
RSACryptoServiceProvider()
的构造函数可用于创建新密钥对。如果要创建机器密钥或定义已创建密钥对的其他一些参数,则应使用RSACryptoServiceProvider(CspParameters parameters)
构造函数。因此,请创建一个新的CspParameters
实例,例如cspParams
,并将cspParams.Flags
填入CspProviderFlags.UseMachineKeyStore
。然后,您将能够尊重RSACryptoServiceProvider(CspParameters parameters)
构造函数创建机器密钥。