I am currently working on a project assigned by my teacher and I need to ensure the application it has strong encryption. Below is my encrypt method:
 private String Encrypt(string text)
{
    RijndaelManaged RijndaelCipher = new RijndaelManaged();
    string Password = System.Configuration.ConfigurationManager.AppSettings["Password"];
    byte[] PlainText = System.Text.Encoding.Unicode.GetBytes(TextBox1.Text);
    byte[] Salt = Encoding.ASCII.GetBytes(Password.Length.ToString());
    PasswordDeriveBytes SecretKey = new PasswordDeriveBytes(Password, Salt);
    ICryptoTransform Encryptor = RijndaelCipher.CreateEncryptor(SecretKey.GetBytes(32), SecretKey.GetBytes(16));
    MemoryStream memoryStream = new MemoryStream();
    CryptoStream cryptoStream = new CryptoStream(memoryStream, Encryptor, CryptoStreamMode.Write);
    cryptoStream.Write(PlainText, 0, PlainText.Length);
    cryptoStream.FlushFinalBlock();
    byte[] CipherBytes = memoryStream.ToArray();
    memoryStream.Close();
    cryptoStream.Close();
    string EncryptedData = Convert.ToBase64String(CipherBytes);
    return EncryptedData;
}
This is my Decrypt Method
public string Decrypt(string encrypted)
{
    RijndaelManaged RijndaelCipher = new RijndaelManaged();
    string Password = System.Configuration.ConfigurationManager.AppSettings["Password"];
    string DecryptedData;
    try
    {
        byte[] EncryptedData = Convert.FromBase64String(TextBox2.Text);
        byte[] Salt = Encoding.ASCII.GetBytes(Password.Length.ToString());
        PasswordDeriveBytes SecretKey = new PasswordDeriveBytes(Password, Salt);
        ICryptoTransform Decryptor = RijndaelCipher.CreateDecryptor(SecretKey.GetBytes(32), SecretKey.GetBytes(16));
        MemoryStream memoryStream = new MemoryStream(EncryptedData);
        CryptoStream cryptoStream = new CryptoStream(memoryStream, Decryptor, CryptoStreamMode.Read);
        byte[] PlainText = new byte[EncryptedData.Length];
        int DecryptedCount = cryptoStream.Read(PlainText, 0, PlainText.Length);
        memoryStream.Close();
        cryptoStream.Close();
        DecryptedData = Encoding.Unicode.GetString(PlainText, 0, DecryptedCount);
    }
    catch
    {
        DecryptedData = TextBox3.Text;
    }
    return DecryptedData;
}
As you can see from my codes, I am using the password from the web config and I do not store any IV and key into the database. So my question is if the encryptions method that I use is as secure as using AES method. If it isn't, is there any other possible solutions that I can refer to? Thanks for replying and sorry for my poor english skills.
 
    