LoginSignup
2
2

More than 3 years have passed since last update.

【C#】.NET Frameworkと.NET CoreのRijndaelの挙動について

Last updated at Posted at 2021-02-15

はじめに

Rijidaelを使用したAESの文字列暗号化プログラムを書いていたが、ブロックサイズを初期値の128ビットから256ビットにしたい!と思ったときに、できる時とできない時があることがわかった。
なんでだろう?と思って調べてみると、どうやらRijindaelはプロジェクトが.NET Frameworkか.NET Coreかで仕様が違うというらしいことがわかった。

サンプルプログラム

Sample.cs
using System.Security.Cryptography;

class Sample
{
    static void Encrypt()
    {
        //Rijindaelのオブジェクトを作成
        using (RijndaelManaged rijndael = new RijndaelManaged())
        {
            //Rijindaelのブロックサイズの設定
            //初期値128ビットを256ビットに変更
            rijndael.BlockSize = 256;
        }
    }
}

プログラムの詳細

.NET FrameworkではBlockSizeの初期値128を256に変更することができるが、.NET Coreでは「System.PlatformNotSupportedException: 'BlockSize must be 128 in this implementation」エラーが発生してしまう。

なぜ?

どうやら、.NET CoreではRijinDaelはブロック長256bitはサポートされていないらしく、今回のようなエラーが発生してしまったとのこと。
反省点としては、.NET Frameworkと.NET Coreの区別がまだしっかりついてなかったのでちゃんとつけるようにしていくこと…

参考URL:https://teratail.com/questions/137542

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2