Пример #1
0
        public EncryptedData Encrypt(EncryptionStrength strength, string str)
        {
            if (string.IsNullOrWhiteSpace(str))
            {
                return(new EncryptedData {
                    IsEmpty = true
                });
            }

            var hash = Hash(strength, str, false);

            var ekey = _encryptionKey;

            using (var aes = Aes.Create())
            {
                aes.Key = Convert.FromBase64String(ekey);
                var encrypted = AesEncryption.EncryptStringToBytes_Aes(str, aes.Key, aes.IV);
                var result    = new byte[aes.IV.Length + encrypted.Length];
                aes.IV.CopyTo(result, 0);
                encrypted.CopyTo(result, 16);

                return(new EncryptedData
                {
                    IsEmpty = false,
                    Hash = hash,
                    Encrypted = Convert.ToBase64String(result)
                });
            }
        }
Пример #2
0
        public string Decrypt(string str)
        {
            byte[] ivPlusMessage = Convert.FromBase64String(str);
            byte[] message       = new byte[ivPlusMessage.Length - 16];
            byte[] iv            = new byte[16];

            Array.ConstrainedCopy(ivPlusMessage, 0, iv, 0, 16);
            Array.ConstrainedCopy(ivPlusMessage, 16, message, 0, ivPlusMessage.Length - 16);

            var ekey = _encryptionKey;

            var decrypted = AesEncryption.DecryptStringFromBytes_Aes(message, Convert.FromBase64String(ekey), iv);

            return(decrypted);
        }