日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

MySQL使用AES_ENCRYPT()/AES_DECRYPT() 加解密 + mysql hex与unhex存取数据

發布時間:2023/12/13 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 MySQL使用AES_ENCRYPT()/AES_DECRYPT() 加解密 + mysql hex与unhex存取数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據庫中加密后的內容

hex:可以用HEX()函數將一個字符串或數字轉換為十六進制格式的字符串

unhex:把十六進制格式的字符串轉化為原來的格式

備注:

以下 CloumnName為字段名,DESKey是des加密秘鑰,tablename為表名,根據需要自行修改。

1、select 方法:

1 select  aes_decrypt(unhex(CloumnName),'DESKey') as A,aes_decrypt(unhex(NM090D5CB6C0DFAE21),'netmarch') as B,aes_decrypt(unhex(NMEDF1FBF775090C9B),'netmarch') as C
2 from tablename

2、把加密解密方法存為function的調用方法

1) Decryptt :解密的function

CREATE DEFINER=`root`@`%` FUNCTION `Decryptt`(`input` varchar(2000)) RETURNS varchar(5000) CHARSET utf8
begin   
  declare i_key varchar(128) default('DESKey');
  declare v_out varchar(5000);  
  declare error_s integer default 0;
  declare continue handler for sqlexception,sqlwarning set error_s =1;


  select aes_decrypt(unhex(input),i_key) into v_out;
  if error_s then
     set v_out=input;
  end if;
  return v_out;
end

select方法: select Decryptt(CloumnName) as Afrom tablename

2)Encryptt:加密的function

CREATE DEFINER=`root`@`%` FUNCTION `Encryptt`(`input` varchar(2000)) RETURNS varchar(5000) CHARSET utf8
begin   
  declare i_key varchar(128) default('netmarch');
  declare v_out varchar(5000);  
  declare error_s integer default 0;
  declare continue handler for sqlexception,sqlwarning set error_s =1;


  select hex(aes_encrypt(input,i_key)) into v_out;
  if error_s then
     set v_out=input;
  end if;
  return v_out;
end

3、用HEX()來存入加密后的密文,用UNHEX()取出再解密。

例:將'hello world'先用密鑰'key2'進行AES加密,再將加密后的串通過HEX函數十六進制化。

INSERT INTO tablename VALUES (HEX(AES_ENCRYPT('hello world','key2')));
最后先將加密后的串通過UNHEX取出,再通過AES據密鑰'key2'解密:


SELECT AES_DECRYPT(UNHEX(pass1), 'key2') FROM tablename;

總結

以上是生活随笔為你收集整理的MySQL使用AES_ENCRYPT()/AES_DECRYPT() 加解密 + mysql hex与unhex存取数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。