首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

AES加密 密钥长度有关问题

2012-09-08 
AES加密 密钥长度问题C# codeprivate static readonly String strAesKey iwww.maoblog.comi123.maoblog

AES加密 密钥长度问题

C# code
    private static readonly String strAesKey = "iwww.maoblog.comi123.maoblog.com";//加密所需32位密匙        /// <summary>      /// AES加密      /// </summary>      /// <param name="str">要加密字符串</param>      /// <returns>返回加密后字符串</returns>      public static String Encrypt_AES(String str)    {        Byte[] keyArray = System.Text.UTF8Encoding.UTF8.GetBytes(strAesKey);        Byte[] toEncryptArray = System.Text.UTF8Encoding.UTF8.GetBytes(str);         System.Security.Cryptography.RijndaelManaged rDel = new System.Security.Cryptography.RijndaelManaged();        rDel.Key = keyArray;        rDel.Mode = System.Security.Cryptography.CipherMode.ECB;        rDel.Padding = System.Security.Cryptography.PaddingMode.PKCS7; System.Security.Cryptography.ICryptoTransform cTransform = rDel.CreateEncryptor();        Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);        return Convert.ToBase64String(resultArray, 0, resultArray.Length);    }    /// <summary>      /// AES解密      /// </summary>      /// <param name="str">要解密字符串</param>      /// <returns>返回解密后字符串</returns>      public static String Decrypt_AES(String str)    {        Byte[] keyArray = System.Text.UTF8Encoding.UTF8.GetBytes(strAesKey);        Byte[] toEncryptArray = Convert.FromBase64String(str); System.Security.Cryptography.RijndaelManaged rDel = new System.Security.Cryptography.RijndaelManaged();        rDel.Key = keyArray;        rDel.Mode = System.Security.Cryptography.CipherMode.ECB;        rDel.Padding = System.Security.Cryptography.PaddingMode.PKCS7; System.Security.Cryptography.ICryptoTransform cTransform = rDel.CreateDecryptor();        Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);        return System.Text.UTF8Encoding.UTF8.GetString(resultArray);    }


这是网上看的例子

private static readonly String strAesKey = "iwww.maoblog.comi123.maoblog.com";//加密所需32位密匙  

加密必须要32位的密匙 请问 能不能不限制密匙的长度?

[解决办法]
上面没改好:

C# code
byte[] keyArray = null;using (System.Security.Cryptography.MD5CryptoServiceProvider m = new System.Security.Cryptography.MD5CryptoServiceProvider()) {    keyArray  = m.ComputeHash(Texts.MyEncoder.GetBytes(strAesKey));}
[解决办法]
参考:http://www.google.com.hk/search?q=Rfc2898DeriveBytes&hl=zh-CN&newwindow=1&safe=strict&rls=com.microsoft:en-US:IE-Address&prmd=imvns&source=lnt&tbs=lr:lang_1zh-CN%7Clang_1zh-TW&lr=lang_zh-CN%7Clang_zh-TW&sa=X&ei=ryUVUNzLDaWPiAfH9IDoCw&ved=0CFEQpwUoAQ&biw=1440&bih=815

热点排行