Переглянути джерело

数据库加解密函数脚本

gaodm 5 роки тому
батько
коміт
295a550da8
1 змінених файлів з 40 додано та 0 видалено
  1. 40 0
      docs/028.20200102数据库加密/fuc_med.sql

+ 40 - 0
docs/028.20200102数据库加密/fuc_med.sql

@@ -0,0 +1,40 @@
+DELIMITER $
+DROP FUNCTION IF EXISTS Decrypt_char $
+CREATE FUNCTION Decrypt_char(Varstring varchar(255)) RETURNS varchar(255)
+BEGIN
+DECLARE v_length INT DEFAULT 0;
+DECLARE v_Tmp varchar(255) default '';
+DECLARE v_Tmp2 char(1) default '';
+set v_length=CHAR_LENGTH(Varstring);
+WHILE v_length > 0 DO
+set v_Tmp2 = mid(Varstring,v_length,1);
+IF (ORD(v_Tmp2)> 130) THEN
+set v_Tmp = concat(v_Tmp, char(ORD(CONVERT(v_Tmp2 USING ucs2)) -2 USING ucs2));
+ELSE
+set v_Tmp = concat(v_Tmp,v_Tmp2);
+END IF;
+SET v_length = v_length - 1;
+END WHILE;
+RETURN REVERSE(v_Tmp);
+END $
+
+
+DELIMITER $
+DROP FUNCTION IF EXISTS Encrypt_char $
+CREATE FUNCTION Encrypt_char(Varstring varchar(255)) RETURNS varchar(255)
+BEGIN
+DECLARE v_length INT DEFAULT 0;
+DECLARE v_Tmp varchar(255) default '';
+DECLARE v_Tmp2 char(1) default '';
+set v_length=CHAR_LENGTH(Varstring);
+WHILE v_length > 0 DO
+set v_Tmp2 = mid(Varstring,v_length,1);
+IF (ORD(v_Tmp2)> 128) THEN
+set v_Tmp = concat(v_Tmp, char(ORD(CONVERT(v_Tmp2 USING ucs2)) +2 USING ucs2));
+ELSE
+set v_Tmp = concat(v_Tmp,v_Tmp2);
+END IF;
+SET v_length = v_length - 1;
+END WHILE;
+RETURN REVERSE(v_Tmp);
+END $