diff --git a/AMWD.Common/Utilities/CryptographyHelper.cs b/AMWD.Common/Utilities/CryptographyHelper.cs index ab43fa3..71a83c7 100644 --- a/AMWD.Common/Utilities/CryptographyHelper.cs +++ b/AMWD.Common/Utilities/CryptographyHelper.cs @@ -72,6 +72,32 @@ namespace System.Security.Cryptography return AesEncrypt(plain, password); } + /// + /// Decrypts a Base64 string using the AES algorithm and a password to an UTF-8 string. + /// + /// The encrypted Base64 encoded string. + /// The password to use for decryption (optional). + /// The decrypted UTF-8 string string. + public string DecryptAes(string cipherStr, string password = null) + { + byte[] cipher = Convert.FromBase64String(cipherStr); + byte[] plain = DecryptAes(cipher, password); + return Encoding.UTF8.GetString(plain); + } + + /// + /// Encrypts an UTF-8 string using the AES algorithm and a password to a Base64 string. + /// + /// The UTF-8 string to encrypt. + /// The password to use for encryption (optional). + /// The encrypted Base64 encoded string. + public string EncryptAes(string plainStr, string password = null) + { + byte[] plain = Encoding.UTF8.GetBytes(plainStr); + byte[] cipher = EncryptAes(plain, password); + return Convert.ToBase64String(cipher); + } + #endregion AES #region Triple DES @@ -110,6 +136,38 @@ namespace System.Security.Cryptography return TripleDesEncrypt(plain, password); } + /// + /// Decrypts a Base64 encoded string using the triple DES algorithm and a password. + /// + /// + /// When the parameter is null, the key from the file (set on initialize) is used instead. + /// + /// The encrypted Base64 encoded string. + /// The password to use for decryption (optional). + /// The decrypted UTF-8 string. + public string DecryptTripleDes(string cipherStr, string password = null) + { + byte[] cipher = Convert.FromBase64String(cipherStr); + byte[] plain = DecryptTripleDes(cipher, password); + return Encoding.UTF8.GetString(plain); + } + + /// + /// Encrypts an UTF-8 string using the triple DES algorithm and a password. + /// + /// + /// When the parameter is null, the key from the file (set on initialize) is used instead. + /// + /// The UTF-8 string to encrypt. + /// The password to use for encryption (optional). + /// The encrypted Base64 encoded string. + public string EncryptTripleDes(string plainStr, string password = null) + { + byte[] plain = Encoding.UTF8.GetBytes(plainStr); + byte[] cipher = EncryptTripleDes(plain, password); + return Convert.ToBase64String(cipher); + } + #endregion Triple DES #endregion Instance methods @@ -176,6 +234,32 @@ namespace System.Security.Cryptography return ms.ToArray(); } + /// + /// Decrypts a Base64 string using the AES algorithm and a password to an UTF-8 string. + /// + /// The encrypted Base64 encoded string. + /// The password to use for decryption. + /// The decrypted UTF-8 string string. + public static string AesDecrypt(string cipherStr, string password) + { + byte[] cipher = Convert.FromBase64String(cipherStr); + byte[] plain = AesDecrypt(cipher, password); + return Encoding.UTF8.GetString(plain); + } + + /// + /// Encrypts an UTF-8 string using the AES algorithm and a password to a Base64 string. + /// + /// The UTF-8 string to encrypt. + /// The password to use for encryption. + /// The encrypted Base64 encoded string. + public static string AesEncrypt(string plainStr, string password) + { + byte[] plain = Encoding.UTF8.GetBytes(plainStr); + byte[] cipher = AesEncrypt(plain, password); + return Convert.ToBase64String(cipher); + } + #endregion AES #region Triple DES @@ -236,6 +320,32 @@ namespace System.Security.Cryptography return ms.ToArray(); } + /// + /// Decrypts an Base64 encoded string using the triple DES algorithm and a password. + /// + /// The encrypted Base64 encoded string. + /// The password to use for decryption. + /// The decrypted UTF-8 string. + public static string TripleDesDecrypt(string cipherStr, string password) + { + byte[] cipher = Convert.FromBase64String(cipherStr); + byte[] plain = TripleDesDecrypt(cipher, password); + return Encoding.UTF8.GetString(plain); + } + + /// + /// Encrypts an UTF-8 string using the triple DES algorithm and a password. + /// + /// The UTF-8 string to encrypt. + /// The password to use for encryption. + /// The encrypted Base64 encoded string. + public static string TripleDesEncrypt(string plainStr, string password) + { + byte[] plain = Encoding.UTF8.GetBytes(plainStr); + byte[] cipher = TripleDesEncrypt(plain, password); + return Convert.ToBase64String(cipher); + } + #endregion Triple DES #endregion Encryption