// (c) 2006 Richard Grimes // www.grimes.demon.co.uk using System; using System.Security.Cryptography; using System.Text; class App { static void Main() { RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); string clearText = "the quick brown fox..."; byte[] data = Encoding.ASCII.GetBytes(clearText); RSAPKCS1SignatureFormatter formatter = new RSAPKCS1SignatureFormatter(rsa); formatter.SetHashAlgorithm("SHA1"); SHA1 sha = SHA1.Create(); byte[] hash = sha.ComputeHash(data); byte[] sign = formatter.CreateSignature(hash); Console.WriteLine(BitConverter.ToString(sign)); RSAPKCS1SignatureDeformatter deformatter = new RSAPKCS1SignatureDeformatter(rsa); deformatter.SetHashAlgorithm("SHA1"); bool bVerify = deformatter.VerifySignature(hash, sign); Console.WriteLine("signature is verified: {0}", bVerify); } }