DELIMITER $$ CREATE FUNCTION MakeRandomEncryptPattern() RETURNS VARCHAR(62) DETERMINISTIC BEGIN DECLARE strOrder VARCHAR(62) DEFAULT '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; DECLARE strResult VARCHAR(62) DEFAULT ''; DECLARE nRand INT; DECLARE i INT DEFAULT LENGTH(strOrder); WHILE i > 0 DO SET nRand = FLOOR(RAND() * i); SET strResult = CONCAT(strResult, SUBSTRING(strOrder, nRand + 1, 1)); SET strOrder = CONCAT(SUBSTRING(strOrder, 1, nRand), SUBSTRING(strOrder, nRand + 2)); SET i = i - 1; END WHILE; RETURN strResult; END$$ DELIMITER ; DELIMITER $$ CREATE FUNCTION MakeDecryptPattern(strPattern_Encrypt VARCHAR(62)) RETURNS VARCHAR(62) DETERMINISTIC BEGIN DECLARE strOrder VARCHAR(62) DEFAULT '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; DECLARE strResult VARCHAR(62) DEFAULT ''; DECLARE chChar CHAR(1); DECLARE nPos INT; SET i = 1; WHILE i <= LENGTH(strOrder) DO SET chChar = SUBSTRING(strOrder, i, 1); SET nPos = LOCATE(chChar, strPattern_Encact); IF nPos > 0 THEN SET strResult = CONCAT(strResult, SUBSTRING(strPattern_Encrypt, nPos, 1)); END IF; SET i = i + 1; END WHILE; RETURN strResult; END$$ DELIMITER ;