対称キーで暗号化(EncryptByKey)できる文字列最大長を調べました。
この辺の情報を探せなかったので、1文字ずつ暗号化して、必要バイト数を調査しました。
暗号化後のサイズが8000バイト以下になるようなサイズでないといけないようです。
暗号化アルゴリズム | varchar 最大長 |
nvarchar 最大文字数 |
暗号化後 必要バイト数 |
TRIPLE_DES | 7,959 | 3,979 | 7,996 |
TRIPLE_DES_3KEY | 7,959 | 3,979 | 7,996 |
RC2 | 7,959 | 3,979 | 7,996 |
AES_128 | 7,943 | 3,971 | 7,988 |
AES_192 | 7,943 | 3,971 | 7,988 |
AES_256 | 7,943 | 3,971 | 7,988 |
暗号化アルゴリズム | 必要バイト数 | 必要バイト数(Excel関数) |
TRIPLE_DES | ((((入力文字バイト数)-1 +9)/8)+1)*8 +28 | CEILING((<入力文字バイト数>+9),8)+28 |
TRIPLE_DES_3KEY | ((((入力文字バイト数)-1 +9)/8)+1)*8 +28 | CEILING((<入力文字バイト数>+9),8)+28 |
RC2 | ((((入力文字バイト数)-1 +9)/8)+1)*8 +28 | CEILING((<入力文字バイト数>+9),8)+28 |
AES_128 | ((((入力文字バイト数)-1 +9)/16)+1)*16 +36 | CEILING((<入力文字バイト数>+9),16)+36 |
AES_192 | ((((入力文字バイト数)-1 +9)/16)+1)*16 +36 | CEILING((<入力文字バイト数>+9),16)+36 |
AES_256 | ((((入力文字バイト数)-1 +9)/16)+1)*16 +36 | CEILING((<入力文字バイト数>+9),16)+36 |