[.NET]產生AES的Key與IV

  • 20157
  • 0

[.NET]產生AES的Key與IV

前言
之前一篇文章:
[ASP.NET]AES加解密,裡面提到了如何使用RijndaelManaged來做AES的加解密。

這篇文章則是memo,如何產生AES加解密用的Key與IV值。

說明

  1. 當new RijndaelManaged()的時候,該類別就會自動產生一組Key與IV在其Key屬性與IV屬性。
  2. Key屬性與IV屬性為byte[],Key為byte[32], IV為byte[16]。而要呈現或記錄時,通常會將byte[]轉成Base64的字串。

 

Sample Code

    /// 產生AES需要的Key與IV
    /// </summary>
    public static class KeyEntityGenerator
    {
        /// <summary>
        /// 透過RijndaelManaged產生AES的Key與IV,並經過Base64轉換成字串
        /// </summary>
        /// <returns>帶有Key與IV的KeyEntity</returns>
        public static KeyEntity GetKeyEntity()
        {
            var generator = new RijndaelManaged();
            var key = Convert.ToBase64String(generator.Key);
            var iv = Convert.ToBase64String(generator.IV);

            var result = new KeyEntity(key, iv);
            return result;
        }
    }

    public class KeyEntity
    {
        public KeyEntity(string key, string iv);

        public string KeyIV { get; }
        public string KeyValue { get; }
    }

 

畫面

KeyAndIV


結論
只是個Memo,以免自己忘記,也提供給各位在使用.NET的RijndaelManaged類別時,當個參考。


blog 與課程更新內容,請前往新站位置:http://tdd.best/