有人给了我一个mysql函数:
CREATE DEFINER=`root`@`localhost` FUNCTION `SQL_DéchiffreDonnée`(Val TEXT) RETURNS text CHARSET utf8
BEGIN
DECLARE key_str TEXT CHARSET utf8;
DECLARE init_vector TEXT CHARSET utf8;
SET block_encryption_mode = 'aes-256-cbc';
SET init_vector = CAST('---*QZF' AS BINARY); -- RANDOM_BYTES(16);
SET key_str = SHA2('-----*qfw',512);
RETURN CONVERT(AES_DECRYPT(unhex(Val),key_str,init_vector) USING utf8);
END
我找不到在mamp/mysql接口中注册它的位置。有什么提示吗?
编辑
我设法通过mysqld存储函数:
/Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot
mysql>use database_name;
mysql>DELIMITER $$
mysql> CREATE DEFINER=`root`@`localhost` FUNCTION `SQL_DchiffreDonne`(Val TEXT) RETURNS text CHARSET utf8
-> BEGIN
-> DECLARE key_str TEXT CHARSET utf8;
-> DECLARE init_vector TEXT CHARSET utf8;
-> SET block_encryption_mode = 'aes-256-cbc';
-> SET init_vector = CAST('---*sdf' AS BINARY); -- RANDOM_BYTES(16);
-> SET key_str = SHA2('---***',512);
->
-> RETURN CONVERT(AES_DECRYPT(unhex(Val),key_str,init_vector) USING utf8);
-> END
-> ;
-> $$
但现在我不能调用函数:
SELECT SQL_DchiffreDonne(NNS) from table_name;
给我一个错误:
SQL query: Documentation
SELECT SQL_DchiffreDonne(NNS) from compte_courant LIMIT 0, 30
MySQL said: Documentation
# 1411 - Incorrect string value: 'Val@0' for function unhex
暂无答案!
目前还没有任何答案,快来回答吧!