代码之家  ›  专栏  ›  技术社区  ›  Peter Evjan

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

  •  0
  • Peter Evjan  · 技术社区  · 15 年前

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

    谢谢你的帮助! 彼得

    1 回复  |  直到 15 年前
        1
  •  2
  •   Nick Craver    15 年前

    有两种选择,如果它是内部的,并且您希望所有机器都做相同的事情,那么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

    推荐文章