2016-07-07 19 views
1

Ich möchte Text mit AES in mysql verschlüsseln, aber ich habe ein kleines Problem, weil Sie varbinary verwenden müssen, um diese zu speichern.Wie benutze ich varbinary, wenn ich die Länge meines Textes nicht kenne

Einige meiner Datentypen sind varchar und ja, ich kann wahrscheinlich die Länge meiner varbinary für diese berechnen. Für meine Adressfelder verwende ich jedoch den TEXT-Datentyp, da wir chinesische Adressen gespeichert haben und diese sehr lang sein können. Ich benutze den TEXT-Datentyp, weil Sie in mysql keine Länge angeben müssen.

Das Problem ist, dass mit Varbinary müssen Sie eine Länge angeben, und ich weiß nicht wirklich die Länge, weil die Adressen beliebig lang sein können.

Gibt es eine Art binärer Datentyp, den ich für AES verwenden kann, wo ich die Länge der Daten nicht angeben muss?

+1

Sie sind nach "Blob" oder binäre lange Objekt. Wenn 'varbinary' charset-loses Äquivalent zu' varchar' ist, dann ist das 'blob' zu' text'. – Mjh

+0

Danke. Wenn Sie Ihren Kommentar als Antwort hinterlassen, kann ich Sie wählen –

+1

@Mjh Das ist Binary * Large * Object, wenn ich mich nicht irre. Es gibt auch ein ['MEDIUMBLOB' und' LARGEBLOB'] (http://stackoverflow.com/a/5775601/589259), also kann es ein Leser verwirren, wenn man es als Binary * Long * Objekt bezeichnet. Ansonsten ist der Hinweis natürlich OK. –

Antwort

2

Gemäß den Kommentaren - Sie benötigen BLOB Datentyp, der für Binary Large Object (danke Maarten Bodewes zur Verdeutlichung) ist.

Ein BLOB Datentyp speichert keinen Zeichensatz mit den Informationen und entspricht TEXT Typ, ohne einen Zeichensatz. Wie in den Kommentaren erwähnt, gibt es andere Arten wie MEDIUMBLOB, TINYBLOB, LARGEBLOB, sie sind alle auf MySQL's manual page abgedeckt.