DOBON.NETプログラミング道掲示板

No35137 の記事


■35137 / )  Re[1]: 特定のPCだけ発生する「パディングは無効なので削除できません」のエラーの原因
□投稿者/ 魔界の仮面弁士 大御所(1445回)-(2022/08/25(Thu) 01:56:54)
  • アイコンNo35135に返信(わっしーさんの記事)
    > 1名だけ「パディングは無効なので削除できません」とエラーが発生します。
    [詳細(D)]ボタンを開くと、エラー箇所のスタックトレースが表示されませんか?


    > コード内に暗号化/復号の処理があるため、そこでのエラーと思われますが、
    暗号化における「パディング」の意味はご存知でしょうか。
    https://www.tohoho-web.com/ex/crypt.html#padding

    どのような暗号化処理を行っているのかにもよりますが、
    たとえば AES (Rijndael) を用いているとすれば、そのエラーは

    (1)暗号化時と復号化時で、Padding プロパティの指定が間違っている

    (2)初期化ベクトル(IV)かパスワードが間違っていて変換に失敗している

    (3)データ長がちょうどブロック長の倍数と一致していたため、
     「末尾に空のパディングを付与」or「パディングを付与しない」の
     いずれのルールになるべきかが、暗号化時と復号化時でブレている

    などのケースで発生する可能性があります。


    ということで、まずは暗号化時と復号化時の Padding 指定を確認してください。

    たとえば(3)のケースなら、復号時に PaddingMode.None を指定すれば
    パディングの自動削除が行われなくなるので、複合後のデータ末尾のブロックを
    自分で読み取って判断し、不要なパディング部を自力で除去するといった
    補正を行うこともできるでしょう。

    参考情報としてこのあたり。
    https://social.msdn.microsoft.com/Forums/security/ja-JP/fbd89c41-0af8-4b1a-8106-fa9a69e4488b/24489214952127012395123881235612390?forum=vbgeneralja
違反を報告
返信 削除キー/


Mode/  Pass/


- Child Tree -