Example #1
0
        public static void TestClassInit(TestContext context)
        {
            _rsaProvider = new RSACryptoServiceProvider();

            string publicKeyXml  = _rsaProvider.ToXmlString(false);
            string privateKeyXml = _rsaProvider.ToXmlString(true);

            _rsaPublicXml  = publicKeyXml;
            _rsaPrivateXml = privateKeyXml;

            _rsaPublic  = RSAPublicKey.FromXmlString(publicKeyXml);
            _rsaPrivate = RSAPrivateKey.FromXmlString(privateKeyXml);
        }
Example #2
0
        private void test2()
        {
            RSACryptoServiceProvider _rsa       = new RSACryptoServiceProvider();
            RSAParameters            parameters = _rsa.ExportParameters(true);
            string Exponent = BitConverter.ToString(parameters.Exponent);
            string Mosulus  = BitConverter.ToString(parameters.Modulus);
            string D        = BitConverter.ToString(parameters.D);

            string publicKey  = _rsa.ToXmlString(false);
            string privateKey = _rsa.ToXmlString(true);

            _rsa.Clear();


            RSAPublicKey  _publicKey  = RSAPublicKey.FromXmlString(publicKey);
            RSAPrivateKey _privateKey = RSAPrivateKey.FromXmlString(privateKey);

            string input = "这个极简单的 BigInteger 类的全部源程序代码可以在本随笔开头给出的 URL 中找到,只有五十多行。她是基于 10 进制的,内部使用一个 int[] 来存储,需要事先指定该数组的大小,不能动态增长,而且只能表示非负整数。";

            PublicKeyEncrypt(input, _publicKey, _privateKey);
            PublicKeySign(input, _publicKey, _privateKey);
        }
Example #3
0
 public static bool Verify(string data, string privateKey, HashAlgorithm hash, string signature)
 {
     return(Verify(Encoding.UTF8.GetBytes(data), RSAPrivateKey.FromXmlString(privateKey), hash, Encoding.UTF8.GetBytes(signature)));
 }
Example #4
0
 public static string Decrypt(string data, string privateKey)
 {
     return(Encoding.UTF8.GetString(Decrypt(Convert.FromBase64String(data), RSAPrivateKey.FromXmlString(privateKey))));
 }