mysql資料字段加密

2021-07-11 04:51:32 字數 1660 閱讀 2868

password():建立乙個經過加密的密碼字串,適合於插入到mysql的安全系統。該加密過程不可逆,和unix密碼加密過程使用不同的演算法。主要用於mysql的認證系統。

encrypt(,)  aes_decrypt( , ):使用unix crypt()系統加密字串,encrypt()函式接收要加密的字串和(可選的)用於加密過程的salt(乙個可以唯一確定口令的字串,就像鑰匙一樣)。加密程度比encode較強。注意,windows上不支援。

encode(,)   decode(,):加密解密字串。該函式有兩個引數:被加密或解密的字串和作為加密或解密基礎的金鑰。encode結果是乙個二進位制字串,以blob型別儲存。加密成度相對比較弱。

md5():計算字串的md5校驗和(128位),sha5():計算字串的sha5校驗和(160位),這兩個函式返回的校驗和是16進製制的,適合與認證系統中使用的口令。

1、建測試表

create table `tab_col_encrypt` (

`id` int(11) default null,

`user_name` varchar(10) default null,

`passwd_aes_encrypt` blob,

`passwd_encode` blob

) engine=innodb default charset=utf8;

2、插入測試資料

insert into tab_col_encrypt(id,user_name,passwd_aes_encrypt,passwd_encode)

values(1,'jingsp',aes_encrypt('123456','kitty'),encode('123456','kitty'));

3、檢視加密資料

select id,user_name,aes_decrypt(passwd_aes_encrypt,'kitty') passwd_aes_encrypt,passwd_aes_encrypt passwd_aes_encrypt_blob,decode(passwd_encode,'kitty') passwd_encode,passwd_encode passwd_encode_blob  from tab_col_encrypt;

select id,user_name,aes_decrypt(passwd_aes_encrypt,'kitty1') passwd_aes_encrypt,decode(passwd_encode,'kitty1') passwd_encode from tab_col_encrypt;

4、其他

show full columns from tab_col_encrypt;  

select old_password('111111');

select password('111111');

select md5('pa55word');

MySQL資料字段屬性

mysql有如下字段屬性 作用 可以讓空間增長一倍,只能使用在整型中使用。例子 create table test id intunsignednot null 注意 上面的id定義為無符號型別的,所以不能新增負值。作用 在位數不夠時,前面用0補充。例子 id int 5 zerofill 當你輸入...

mysql資料字段屬性

unsigned 宣告無符號的資料型別。可是原資料儲存型別容量變大一倍。如int 2的64次方到2的64次方 1 用unsifned可以是範圍變成0 2的65次方 zerofill只能在資料型別前導0,及產生效果 0001,auto increment 自動增長型別,自增加一 unique 唯一索引...

初識mysql資料字段屬性 初識MySQL

mysql與sql server相比的優勢 執行速度快.mysql體積小,命令執行的速度快.使用成本低.mysql是開源的,且提供免費版本,對大多數使用者 我這樣的 來說大大降低了使用成本.容易使用.與其他大型資料庫的設定和管理相比,其複雜程度較低,易於使用.可移植性強.mysql能夠執行在多種系統...