ASP.Net机器密钥,验证密钥和解密密钥 - 密钥长度

tri*_*bus 4 asp.net

将ValidationKey和DecryptionKey保留为默认密钥时生成的默认密钥长度是多少?例如:

<machineKey decryptionKey="AutoGenerate,IsolateApps" validationKey="AutoGenerate,IsolateApps" ... />
Run Code Online (Sandbox Code Playgroud)

我无法在MSDN上的任何地方找到此文档.我想生成一个静态机器密钥并使其与默认值保持一致.

Jer*_*emy 7

这个MSDN页面讨论了machineKey web.config元素:

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

另一个MSDN页面有其他信息:

"validationKey指定手动分配的验证密钥.必须手动设置此值以确保跨Web服务器网络(Web场)的一致配置.密钥必须至少为40个字符(20个字节),最多为128个字符(64字节)长.如果使用短于最大长度的密钥,则应使用真正的随机方法创建它们,例如使用RNGCryptoServiceProvider.建议密钥长度为128个十六进制字符.如果将IsolateApps修饰符添加到validationKey值,ASP.NET使用每个应用程序的应用程序ID为每个应用程序生成唯一的加密密钥."

"decryptionKey指定手动分配的密钥.必须手动将此值设置为十六进制字符串,以确保Web场中的配置一致.使用DES加密时密钥长度应为16个字符,使用Triple DES时密钥长度应为48个字符如果使用短于最大长度的密钥,则应使用真正的随机方法创建它们,例如使用RNGCryptoServiceProvider.ASP.NET只能在可以使用128位加密的计算机上使用Triple DES.如果添加对于decryptionKey值的IsolateApps修饰符,ASP.NET使用每个应用程序的应用程序ID为每个应用程序生成唯一的加密密钥."