using Falcon.SugarApi.Encryption; using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Text; namespace Falcon.SugarApi.Test.Encryption { /// /// RSA测试类 /// [TestClass] public class EncryptionTest { /// /// 测试公钥、秘钥生成,加密解密 /// [TestMethod] public void RSATest() { var config = new RSAConfig() { BlockSize = 1024 }; IRSAEncryption r = new RSAProvider(config); var k = r.GenerateKey(); var p = new RSAProvider(config); var mingw = " /// \r\n /// 测试公钥、秘钥生成,加密解密\r\n /// \r\n [TestMethod]\r\n public void EncryptionRSA() {\r\n var config = new RSAConfig();\r\n var r = new RSAProvider(config);"; var miwen = p.Encrypt(mingw, k.PublicKey); var p1 = new RSAProvider(config); var mingw1 = p1.Decrypt(miwen, k.PrivateKey); Assert.AreEqual(mingw, mingw1, "解密后明文不同"); } /// /// 测试公钥、秘钥生成,加密解密 /// [TestMethod("DES测试")] public void DESTest() { var config = new DESConfig() { }; IDESEncryption r = new DESProvider(config); var k = r.GenerateKey(); //var bs = Encoding.UTF8.GetBytes(mingw); //var a1 = Convert.ToBase64String(bs); //var a2 = Convert.FromBase64String(a1); //Assert.AreEqual(bs.Length, a2.Length); for (int i = 0; i < 1000; i++) { var mingw = GenerateStr(); Console.WriteLine(mingw); var p = new DESProvider(config); var miwen = p.Encrypt(k, mingw); var p1 = new DESProvider(config); var mingw1 = p1.Decrypt(k, miwen); Assert.AreEqual(mingw, mingw1, "解密后明文不同"); } } /// /// 生成随机长度,由字符表内字符组成的字符串 /// /// private string GenerateStr() { var chars = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789,.!/*\"; var r = new Random(); var len = r.Next(100); var sb = new StringBuilder(len); for (int i = 0; i < len; i++) { sb.Append(chars[r.Next(0, chars.Length)]); } return sb.ToString(); } } }