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

C# 如何在web.config等服务器之间共享哈希键?,c#,.net,asp.net,iis,encryption,C#,.net,Asp.net,Iis,Encryption,是否有一种方法可以创建一个散列密钥,供我们的不同服务器用于解密web.config中的连接字符串,我将如何做到这一点?有什么建议吗 谢谢你的帮助! //Peter有两种选择,如果它是内部的,并且您希望所有机器都做相同的事情,那么machine.config同步将是最好的选择。您需要生成一个随机键,但下面是要更改的示例元素: <machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD43

是否有一种方法可以创建一个散列密钥,供我们的不同服务器用于解密web.config中的连接字符串,我将如何做到这一点?有什么建议吗

谢谢你的帮助!
//Peter

有两种选择,如果它是内部的,并且您希望所有机器都做相同的事情,那么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个十六进制字符)
自从我第一次这样做时遇到的第一个问题以来……下面是一个如何生成、一次生成并应用于所有机器的示例:

备选案文2:
如果您不在这种情况下,并且您需要在web.config级别使用它,请参阅ion MSDN

Superb,但这给了我一个后续问题: