如何使用 Visual C# .NET 创建用于窗体身份验证的密钥

发布时间:2016-12-10 23:00:26 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"如何使用 Visual C# .NET 创建用于窗体身份验证的密钥",主要涉及到如何使用 Visual C# .NET 创建用于窗体身份验证的密钥方面的内容,对于如何使用 Visual C# .NET 创建用于窗体身份验证的密钥感兴趣的同学可以参考一下。

本文描述如何创建用于窗体身份验证 cookie 数据的加密、解密和验证的密钥。您可以将本文中创建的密钥用于 Machine.config 文件中的 <system.web> 元素中的 <machineKey> 节的 validationKey 和 decryptionKey 属性。 要求 下面的列表概述了推荐使用的硬件、软件、网络基础结构以及所需的 Service Pack: Microsoft Windows 2000 或 Microsoft Windows XPMicrosoft .NET FrameworkMicrosoft Internet 信息服务 (IIS) 创建项目 创建 Visual C# .NET 控制台应用程序: 启动 Visual Studio .NET。在文件菜单上,指向新建,然后单击项目。在项目类型下,单击 Visual C# 项目。在模板下,单击“控制台应用程序”。将该项目命名为 HashConfigCs。单击确定。 编写用于生成密钥的代码 下面的代码将读取从命令行传入的两个参数: 第一个参数是用于创建 decryptionKey 属性的字节数。第二个参数是用于创建 validationKey 属性的字节数。 代码使用随机数生成器创建基于命令行参数的随机字节数。在创建随机字节后,这些字节将格式化为适合在 .config 文件中使用的十六进制字符串。 注意:所创建的十六进制字符串的大小是从命令行传入值的大小的两倍。例如,如果您为密钥指定 24 字节,则转换后相应的字符串长度为 48 字节。decryptionKey 的有效值为 8 或 24。此属性将为数据加密标准 (DES) 创建一个 16 字节密钥,或者为三重 DES 创建一个 48 字节密钥。validationKey 的有效值为 20 到 64。此属性将创建长度从 40 到 128 字节的密钥。代码的输出是一个完整的 <machineKey> 元素,您可以将其复制并粘贴到 Machine.config 文件中。 将以下代码添加到 .cs 文件中: using System; using System.Text; using System.Security.Cryptography; namespace Crypto { public class KeyCreator { public static void Main(String[] args) { String[] commandLineArgs = System.Environment.GetCommandLineArgs(); string decryptionKey = CreateKey(System.Convert.ToInt32(commandLineArgs[1])); string validationKey = CreateKey(System.Convert.ToInt32(commandLineArgs[2])); Console.WriteLine("<machineKey validationKey=\"{0}\" decryptionKey=\"{1}\" validation=\"SHA1\"/>", validationKey, decryptionKey); } static String CreateKey(int numBytes) { RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); byte[] buff = new byte[numBytes]; rng.GetBytes(buff); return BytesToHexString(buff); } static String BytesToHexString(byte[] bytes) { StringBuilder hexString = new StringBuilder(64); for (int counter = 0; counter < bytes.Length; counter++) { hexString.Append(String.Format("{0:X2}", bytes[counter])); } return hexString.ToString(); } } } 生成哈希 现在可编译应用程序。 从命令提示符下运行该应用程序,方法是通过传入两个整数值,它们的大小分别为加密密钥和验证密钥的大小。例如,如果您将控制台应用程序命名为 HashConfigCs.exe,则通过命令行在该应用程序的 Bin\debug 目录下键入以下语法: hashconfigcs.exe 24 64 您可以预期该应用程序返回类似于以下内容的输出: <machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B" decryptionKey="261F793EB53B761503AC445E0CA28DA44AA9B3CF06263B77" validation="SHA1"/> 注意:由于代码正在使用随机数生成器,所以每次都会生成不同的输出。

上一篇:VC导出数据到EXCEL
下一篇:CUGB图论专场2:F - PIGS 需要调整的网络流

相关文章

相关评论