如何调用函数

时间:2012-09-17 07:07:20

标签: c# function encryption

这一个功能是当前的类。我怎么称呼它?

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
      //------
      //------

      String r = EncryptText<Cryptography.Aes>(myTextStringToEncode);
    }
      private string EncryptText<TSymmetricAlgorithm>(string input) where TSymmetricAlgorithm : SymmetricAlgorithm, new()
        {
            var pwdBytes = Encoding.UTF8.GetBytes("MY560Secratekey38433661283912");
            using (TSymmetricAlgorithm sa = new TSymmetricAlgorithm())
            {
                ICryptoTransform saEnc = sa.CreateEncryptor(pwdBytes, pwdBytes);

                var encBytes = Encoding.UTF8.GetBytes(input);

                var resultBytes = saEnc.TransformFinalBlock(encBytes, 0, encBytes.Length);

                return Convert.ToBase64String(resultBytes);
            }
        }
}

3 个答案:

答案 0 :(得分:2)

var result = EncryptText<MySymmetricAlgorithm>("my input");

我建议您考虑一种稍微不同的方法:

string EncryptText(SymmetricAlgorithm algo, string input);

缺点是消费者不得不担心创建算法的实例。您可以使用没有no-param构造函数的实现。此外,您也可以重复使用实例。

最好决定什么最适合您的代码。

答案 1 :(得分:2)

EncryptText<System.Security.Cryptography.Aes>("hello world")

例如?!

请参阅继承层次结构@ http://msdn.microsoft.com/en-en/library/system.security.cryptography.symmetricalgorithm.aspx

答案 2 :(得分:1)

var result = this.EncryptText<MySymmetricAlgorith>("blup");