如何在web.config等服务器之间共享哈希键?

时间:2010-02-02 12:27:37

标签: c# .net asp.net iis encryption

有没有办法创建一个哈希键,我们的不同服务器可以使用它来解密web.config中的连接字符串,我该怎么做?有什么指针吗?

感谢您的帮助! //彼得

1 个答案:

答案 0 :(得分:2)

有2个选项,如果它是内部的,并且您希望所有机器都做同样的事情,那么machine.config同步将是最好的。您需要生成一个随机密钥,但这是您要更改的示例元素:

<machineKey  
validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7
               AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"           
decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
validation="SHA1"
decryption="AES"
/>
  

以密码方式随机生成   键:

     

使用RNGCryptoServiceProvider类   生成加密强大的   随机数。选择合适的   密钥大小。推荐的密钥长度   如下:

     
      
  • 对于SHA1,将validationKey设置为64字节(128个十六进制字符)。
  •   
  • 对于AES,将decryptionKey设置为32个字节(64个十六进制字符)。
  •   
  • 对于3DES,将decryptionKey设置为24个字节(48个十六进制字符)。
  •   

自第一次这样做以来我第一次提出问题......这是一个如何进行生成的例子,做一次并适用于所有机器:How to create keys by using Visual C# .NET

选项2: 如果你不是那种情况而你需要在web.config级别,那么请参阅How To: Encrypt Configuration Sections in ASP.NET 2.0 Using RSA离子MSDN