MYSQL有內建的加解密功能
加密1.AES_ENCRYPT('字串','密碼') ,2.ENCODE('字串','密碼')
解密1.AES_DECRYPT('字串','密碼') ,2.DECODE('字串','密碼'),
加密1和解密1是同組使用加密的安全度最高
加密2和解密2是同組使用加密的安全度次高
可以使用SELECT AES_ENCRYPT('123456','password') 直接取得加密結果,對於大部分的文字或數字是沒問題的
但有些字因編碼的問題並無法正確顯示,必須由資料表直接解出就不會出現錯誤
如:資料表有一個ab_amt的欄位執行程式已經先讀出編碼過的文字放置於字串中,等要顯示時再解密
$a=$row["ab_amt"];
$sql="SELECT DECODE('".$a."','password');
$rd=mysql_query($sql);
list($enamt)=mysql_fetch_row($rd);
這樣使用時有少部分的字串會有問題,如14383 ...等
所以應避免如此使用,而是直接由資料表取用直接顯示
$sql="SELECT DECODE(ab_amt,'password') FROM $table WHERE idx='$idx'";
$rd=mysql_query($sql);
list($enamt)=mysql_fetch_row($rd);