ysql aes加密后亂碼問題?
ysqlysql1字符集,而aes加密算法使用的是utf8字符集,所以在加密后的數據中可能會出現亂碼。
要解決這個問題,需要進行以下幾個步驟:
ysql的默認字符集為utf8
ysqlysqldysql服務使其生效。
2. 在創建表時指定字符集為utf8
在創建表時,可以指定表的字符集為utf8,這樣在對表中的數據進行加密時就不會出現亂碼了。例如:
CREATE TABLE `user` (t(11) NOT NULL AUTO_INCREMENT,ame` varchar(20) NOT NULL,ary(255) NOT NULL,
PRIMARY KEY (`id`)noDB DEFAULT CHARSET=utf8;
crypt函數時指定字符集為utf8
crypt函數時,需要將需要加密的數據轉換為utf8字符集,否則也可能會出現亂碼。例如:
SELECT AES_ENCRYPT(CONVERT('password', USING utf8), 'key');
ysql aes加密后亂碼的問題了。