示例#1
0
        /// <summary>
        /// Decodes and decrypts the specified cipher text.
        /// </summary>
        /// <param name="encodedCipherText">The encoded cipher text.</param>
        /// <returns></returns>
        public string DecodeAndDecrypt(string encodedCipherText)
        {
            if (string.IsNullOrEmpty(encodedCipherText))
            {
                return(encodedCipherText);
            }

            int version;

            byte[] iv;
            byte[] cipherText;

            if (!TryDecodeEncodedCipherText(encodedCipherText, out version, out iv, out cipherText))
            {
                return(null);
            }

            CryptoSettings  settings       = CryptoSettings.GetSettings(version);
            ICryptoProvider cryptoProvider = settings.CryptoProvider;

            return(cryptoProvider.DecryptData(cipherText, Initialise(), iv));
        }