MySQL修改密碼和加密
阿新 • • 發佈:2019-01-05
1,給密碼加密
範例:使用者名稱是hw;密碼是root,不想別人在資料庫中看到密碼root的明文:
insert into hw values(null,'hw',PASSWORD('root'));
那麼別人在資料庫中select看到的結果就是:
——-|—————————|———————-
id | name | password2 |
---|---|---|
1 | hw | *A0B30B8D9F3C3595594C253D96748149629A9407 |
其中 *A0B30B8D9F3C3595594C253D96748149629A9407是經過PASSWORD函式加密的。
那麼在Web中如何驗證加密後的密碼呢?
使用的SQL語句是:
“select count(*)from hw where hw.name =? and hw.password2=PASSWORD(?)”
具體的驗證程式碼如下:
public boolean getByName(String name,String password){
BigInteger pass=(BigInteger )this.sessionFactory.getCurrentSession().
createSQLQuery("select count(*)from hw where hw.name =? and hw.password2=PASSWORD(?)").
setParameter(0, name).setParameter(1, password).uniqueResult();
if (0==pass.intValue())return false;
return true;
}
2,修改MySQL密碼
有兩種方式修改MySQL密碼
方式一
mysql> update mysql.user set password=PASSWORD('root') where user='root';
mysql> flush privileges;
方式二
執行cmd進入命令列視窗,然後輸入:
mysqladmin -uroot -proot password 1234 (把密碼從root改為1234)
mysqladmin -uroot -phw password root (把密碼從hw改為root)
3,建立新使用者
mysql> grant all on *.* to [email protected] identified by ‘1234’
with grant option;
@ 後面跟ip,表示允許登入的ip,%表示允許任何ip訪問