Visual C# .NET을 사용하여 폼 인증에서 사용할 키를 만드는 방
http://support.microsoft.com/default.aspx?scid=312906


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("", 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();
        }
    }
}

저작자 표시 비영리 변경 금지
신고

'개발 > C# / ASP.NET' 카테고리의 다른 글

[MVC] DropDownList에 Enum 바인딩  (0) 2011.09.21
C# machine key 생성하기  (0) 2011.07.05
[MVC] EnumDropDownList  (0) 2011.06.22
C# 한글깨짐 처리  (1) 2011.04.20
Web.Config에 따로 설정을 하면 machinekey를 읽을 필요는 없겠지만서도.. 
나처럼 필요한 경우가 생길지도 몰라 구글링을 통해서 얻은 정보를 공유한다.


protected void Page_Load (object sender, EventArgs e)
{
  MachineKeySection section = (MachineKeySection) 
      ConfigurationManager.GetSection ("system.web/machineKey");

  BindingFlags flags = 
      BindingFlags.Instance | 
      BindingFlags.NonPublic | 
      BindingFlags.GetProperty;

  Func propertyReader = name => (byte[]) section
      .GetType ()
      .GetProperty (name, flags)
      .GetValue (section, null);

  string key = ConvertToHex (
    propertyReader ("DecryptionKeyInternal"));
    
  string iv = ConvertToHex (
    propertyReader ("ValidationKeyInternal"));
}

private string ConvertToHex (byte[] binary)
{
  return binary.Aggregate (
      new StringBuilder (), 
      (acc, c) => acc.AppendFormat ("{0:x2}", c), 
      acc => acc.ToString());
}// 뒤에요거 왜붙지? => 


출처 : 
http://aspnetresources.com/blog/how_to_read_auto_generated_machinekey 
저작자 표시 비영리 변경 금지
신고

'개발 > C# / ASP.NET' 카테고리의 다른 글

C# 한글깨짐 처리  (1) 2011.04.20
자동 생성된 Machinekey 읽기  (0) 2011.04.15
[C#] sysbase 접속  (0) 2011.02.21
Windows 2008 Server - WCF 404.7 error  (0) 2010.12.28

+ Recent posts