public void TestAesDefaultKey() { // arrange using (var csp = new AESCryptoProvider()) { var random = new Random(42); var data = new byte[(int)(csp.KeySize * 1.5)]; random.NextBytes(data); var msSrc = new MemoryStream(); var mswSrc = msSrc.AsUnclosable(); var msDst = new MemoryStream(); var mswDst = msDst.AsUnclosable(); mswSrc.Write(data, 0, data.Length); mswSrc.Position = 0; // act csp.Encrypt(mswDst, mswSrc, (int)mswSrc.Length); mswSrc.Position = 0; mswDst.Position = 0; csp.Decrypt(mswSrc, mswDst, (int)mswDst.Length); var decryptedData = msSrc.GetBuffer(); // assert for (int i = 0; i < msSrc.Length; i++) { Assert.AreEqual(data[i], decryptedData[i]); } } }
public void TestAes() { // arrange using (var csp = new AESCryptoProvider()) { var random = new Random(42); var keySizes = csp.ValidKeySizes; foreach (var sz in keySizes) { csp.KeySize = sz; var key = new byte[sz / 8]; GenerateKey(key); var data = new byte[(int)(sz / 8 * 1.5)]; random.NextBytes(data); var msSrc = new MemoryStream(); var mswSrc = msSrc.AsUnclosable(); var msDst = new MemoryStream(); var mswDst = msDst.AsUnclosable(); mswSrc.Write(data, 0, data.Length); mswSrc.Position = 0; // act csp.Key = key; csp.Encrypt(mswDst, mswSrc, (int)mswSrc.Length); mswSrc.Position = 0; mswDst.Position = 0; csp.Decrypt(mswSrc, mswDst, (int)mswDst.Length); var decryptedData = msSrc.GetBuffer(); // assert for (int i = 0; i < msSrc.Length; i++) { Assert.AreEqual(data[i], decryptedData[i]); } } } }
public void Execute() { var aes = new AESCryptoProvider { DefaultEncryptionEncodeMode = EncodeMode.Base64, DefaultEncoding = Encoding.UTF8, Key = "12345678" }; aes.BeforeSetSymmetricAlgorithm += (sender, args) => { var algorithm = args.Data; // toDo something... algorithm.KeySize = 128; }; aes.AfterSetSymmetricAlgorithm += (sender, args) => { var algorithm = args.Data; // toDo something... Console.WriteLine($"KeySize: {algorithm.KeySize}, BlockSize: {algorithm.BlockSize}"); }; var data = "测试test123..."; Console.WriteLine($"原始数据:{data}"); var encrypt = aes.Encrypt(data); Console.WriteLine($"加密后:{encrypt}"); var decrypt = aes.Decrypt(encrypt); Console.WriteLine($"解密后:{decrypt}"); }
public void CanEncrypt() { //These two values should not be hard coded in your code. byte[] key = { 251, 9, 67, 117, 237, 158, 138, 150, 255, 97, 103, 128, 183, 65, 76, 161, 7, 79, 244, 225, 146, 180, 51, 123, 118, 167, 45, 10, 184, 181, 202, 190 }; byte[] vector = { 214, 11, 221, 108, 210, 71, 14, 15, 151, 57, 241, 174, 177, 142, 115, 137 }; using (var rijndaelHelper = new AESCryptoProvider(key, vector)) { var encrypt = rijndaelHelper.Encrypt(RawValue); Assert.AreNotEqual("StringToEncrypt", encrypt); } }
public object ShowEncryptedOrders(string RSAPublicKey) { //for encription data using client public key var rsaProvider = new RSACryptoServiceProvider(1024); rsaProvider.FromXmlString(RSAPublicKey); //set public rsa key of client to server rsaProvider var rsaSignatureProvider = new RSACryptoServiceProvider(); var rsaSignatureProviderPublicKey = rsaSignatureProvider.ToXmlString(false); //public key of rsa signature provider //create new instance of pbkdf with random iv var pbKdf = new Rfc2898DeriveBytes("8080808080808080", 16); byte[] aesKey = pbKdf.GetBytes(16); //System.Text.Encoding.UTF8.GetBytes("808080808080808e"); byte[] aesIv = pbKdf.GetBytes(16); //System.Text.Encoding.UTF8.GetBytes("8080808080808080"); using (var db = new ApplicationDbContext()) { var userId = User.Identity.GetUserId(); var orders = db.UserOrders .Where(o => o.UserId == userId) .Select(o => new { OrderId = o.Id, CinemaName = o.FilmSession.Cinema.Name, FilmName = o.FilmSession.Film.Name, HallName = o.FilmSession.HallName, FilmDetailsLink = "/Home/FilmDetails/" + o.FilmSession.FilmId.ToString(), Price = o.FilmSession.Price, DateTime = o.FilmSession.DateTime }).ToList(); var encryptedAesKey = rsaProvider.Encrypt(aesKey, true); var encryptedAesIv = rsaProvider.Encrypt(aesIv, true); var signedAesKey = rsaSignatureProvider.SignData(encryptedAesKey, new SHA1CryptoServiceProvider()); var responseData = new { encryptedAesKey = System.Convert.ToBase64String(encryptedAesKey), encryptedAesIv = System.Convert.ToBase64String(encryptedAesIv), orders = AESCryptoProvider.Encrypt(JsonConvert.SerializeObject(orders), aesKey, aesIv), signedData = System.Convert.ToBase64String(signedAesKey), signaturePublicKey = rsaSignatureProviderPublicKey }; return(JsonConvert.SerializeObject(responseData)); } }