• 生成machineKey密钥


    参考资料

    http://support.microsoft.com/kb/312906?wa=wsignin1.0

    ASP.NET 配置概述

    using System;
    using System.Text;
    using System.Security.Cryptography;
    
    namespace Crypto
    {
        public class KeyCreator
        {
            /// <summary>
            /// 生成machineKey密钥
            /// </summary>
            /// <param name="args"></param>
            /// <remarks>
            /// 参数:
            /// 第一个参数是用于创建 decryptionKey 属性的字节数。
            /// 第二个参数是用于创建 validationKey 属性的字节数。
            /// 注意:所创建的十六进制字符串的大小是从命令行传入值的大小的两倍。例如,如果您为密钥指定 24 字节,则转换后相应的字符串长度为 48 字节。
            /// decryptionKey 的有效值为 8 或 24。此属性将为数据加密标准 (DES) 创建一个 16 字节密钥,或者为三重 DES 创建一个 48 字节密钥。
            /// validationKey 的有效值为 20 到 64。此属性将创建长度从 40 到 128 字节的密钥。
            /// 代码的输出是一个完整的<machineKey>元素,您可以将其复制并粘贴到Machine.config文件中。
            /// </remarks>
            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();
            }
        }
    }
    
    格式:
    <machineKey validationKey="AutoGenerate|value[,IsolateApps]"
                decryptionKey="AutoGenerate|value[,IsolateApps]"
                validation="SHA1|MD5|3DES"/>
    样例:
    <machineKey validationKey="77A439696CB986680CEE71CB179BBFFA75AA0FE3AB875B278EE8C54536F2B364E1BDAB809BA26D4263C33863D29B4040CD55D9665E8002D26F04A80C701A4067" decryptionKey="79378FA6BD4BE839D0B8C1E94367A820C77F38FA9CD8C7F0" validation="SHA1"/>
  • 相关阅读:
    数据库插入大量数据时不要忘记先删除索引(小技巧)
    solr入门之权重排序方法初探之使用edismax改变权重
    sql server查看表占用索引空间(小技巧)
    sql server不要插入大数据,开销太大
    MongoDB——更新操作(Update)c#实现
    solr中facet及facet.pivot理解
    Solr --- Group查询与Facet区别
    Solr中的group与facet的区别
    solr之模糊搜索(Fuzzy matching)
    solr之~模糊查询
  • 原文地址:https://www.cnblogs.com/shijun/p/2913490.html
Copyright © 2020-2023  润新知