2012-01-10 31 views
0

我無法讓php的mcrypt函數以可以存儲在我的mysql數據庫中的方式加密文本。導致mysql錯誤的mcrypt字符

下面是一個查詢的例子不工作:

UPDATE mydatabase.clients SET firstname='\'å»」é¶Q' WHERE id_client=65 

但如果我更改爲:

UPDATE mydatabase.clients SET firstname='Test' WHERE id_client=65 

然後,它的工作原理。所以它必須是那些瘋狂的mcrypt角色扔掉東西。

我該怎麼做我的mysql數據庫,以便它接受這些字符?

回答

1

密碼的輸出是一串字節,而不是字符。您不應將密文直接存儲爲文本。使用「二進制」數據類型,或使用類似Base-64的東西將字節字符串轉換爲文本。

0

改變列類型爲二進制代替,這可能工作。

0

確保您正在轉義加密的字符串。這是做這件事的重要部分!

我一直與MySQL和這個Mcrypt和我存儲我的加密數據和初始化向量作爲二進制和我逃避所有這些字符串,他們得到放入查詢之前。奇蹟般有效。