Computer >> Máy Tính >  >> Lập trình >> MySQL

Mã hóa và giải mã một chuỗi trong MySQL?


Để mã hóa và giải mã trong MySQL, hãy sử dụng AES_ENCRYPT () và AES_DECRYPT () trong MySQL -

 chèn vào giá trị yourTableName (AES_ENCRYPT (yourValue, yourSecretKey)); chọn truyền (AES_DECRYPT (yourColumnName, yourSecretKey) as char) fromyourTableName; 

Để hiểu cú pháp trên, trước tiên chúng ta hãy tạo một bảng -

 mysql> tạo bảng demo63−> (-> value blob−>); Truy vấn OK, 0 hàng bị ảnh hưởng (2,60 giây) 

Chèn một số bản ghi vào bảng với sự trợ giúp của lệnh insert. Chúng tôi đang mã hóa trong khi chèn -

 mysql> chèn vào các giá trị demo63 (AES_ENCRYPT ('John', 'PASS')); Truy vấn OK, 1 hàng bị ảnh hưởng (0,18 giây) mysql> chèn vào các giá trị demo63 (AES_ENCRYPT ('David', 'PASS')); Truy vấn OK, 1 hàng bị ảnh hưởng (0,41 giây) mysql> chèn vào các giá trị demo63 (AES_ENCRYPT ('123456', 'PASS')); Truy vấn OK, 1 hàng bị ảnh hưởng (0,41 giây) 

Hiển thị các bản ghi từ bảng bằng cách sử dụng câu lệnh select -

 mysql> select * from demo63; 

Điều này sẽ tạo ra kết quả sau -

 + ------------------------------------ + | giá trị | + ------------------------------------ + | 0x16D8A4F11321D761920783BF96BB8314 || 0x0A85099F705F21D27B0129C54C4473AA || 0xAB7C6D6068BC100B0F04D1C4EA068AC9 | + ------------------------------------ + 3 hàng trong bộ (0,00 giây)  

Sau đây là truy vấn để giải mã -

 mysql> chọn cast (aes_decrypt (value, 'PASS') AS char) từ demo63; 

Điều này sẽ tạo ra kết quả sau -

 + ------------------------------------------ + | ép kiểu (aes_decrypt (value, 'PASS') AS char) | + ----------------------------------- ------- + | John || David || 123456 | + ------------------------------------------ + 3 hàng trong bộ (0,00 giây)