2016-07-07 19 views
1

mysqlでAESを使用してテキストを暗号化したいのですが、varbinaryを使用してこれらを保存する必要があるため、テキストの長さが分からない場合はどうすればvarbinaryを使用しますか

私のデータ型のいくつかはvarcharです。はい、おそらく私はこれらのために私のvarbinaryの長さを処理することができます。しかし、私のアドレス欄では、中国語のアドレスが保存されているのでTEXTデータ型を使用していますが、これは非常に長くなる可能性があります。 mysqlで長さを指定する必要がないので、TEXTデータ型を使用します。

問題は、varbinaryを使用すると長さを指定する必要があることです。アドレスの長さは任意である可能性があるため、長さは実際にはわかりません。

データの長さを指定する必要がないAESに使用できるバイナリデータ型がありますか?

+1

あなたは 'blob'またはバイナリlongオブジェクトの後にいます。 'varbinary'がcharset-lessの' varchar'と等価ならば、 'blob'は' text'になります。 – Mjh

+0

ありがとうございます。あなたが答えとしてあなたのコメントを残したら、私はあなたに投票することができます –

+1

@ Mjhはバイナリです*大*私は間違っていない場合オブジェクト。 [MEDIUMBLOB]と[LARGEBLOB'](http://stackoverflow.com/a/5775601/589259)もありますので、バイナリ*ロング*オブジェクトと呼ぶと読者を混乱させる可能性があります。そうでなければヒントはもちろんOKです。 –

答えて

2

コメントごとに - BLOBのデータ型が必要です。バイナリラージオブジェクト(説明にはMaarten Bodewesに感謝します)の略です。

BLOBデータ型は情報とともに文字セットを格納せず、TEXT型に相当し、文字セットはありません。コメントに記載されているように、MEDIUMBLOB,TINYBLOB,LARGEBLOBのような他のタイプがあり、それらはすべてMySQL's manual pageでカバーされています。

関連する問題