KeyXMLStrings.cs

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

namespace APress.DotNetSecurity.Chapter2.KeyXMLStrings
{
    class KeyXMLStringsTester
    {
        static void Main(string[] args)
        {
            try
            {
                RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)RSA.Create();
                Console.WriteLine("RSA public/private key info in XML is:");
                Console.WriteLine(rsa.ToXmlString(true));
                Console.WriteLine();
                Console.WriteLine("RSA public key info in XML is:");
                Console.WriteLine(rsa.ToXmlString(false));
            }
            catch(CryptographicUnexpectedOperationException cuoe)
            {
                Console.WriteLine("CryptographicUnexpectedOperationException:  "
                    + cuoe.Message);
                Console.WriteLine(cuoe.StackTrace);
            }
            catch(CryptographicException ce)
            {
                Console.WriteLine("CryptographicException:  " + ce.Message);
                Console.WriteLine(ce.StackTrace);
            }
            catch(Exception ge)
            {
                Console.WriteLine("Exception:  " + ge.GetType().Name + " " + ge.Message);
                Console.WriteLine(ge.StackTrace);
            }
            finally
            {
                Console.WriteLine("Press the return key to continue...");
                Console.Read();
            }
        }
        private static String ArrayToHexString(byte[] ByteData)
        {
            StringBuilder retVal = new StringBuilder();
            
            foreach(byte b in ByteData)
            {
                retVal.Append(b.ToString("X2"));
                retVal.Append(" ");
            }
            retVal.Remove(retVal.Length - 1, 1);

            return retVal.ToString();
        }    
    }
}
原文地址:https://www.cnblogs.com/shihao/p/2511225.html