Cập nhật lần cuối vào ngày 01 tháng 3 năm 2021
Áp dụng đối với
Máy chủ MySQL - Phiên bản 8. 0 trở lênThông tin trong tài liệu này áp dụng cho mọi nền tảng
Triệu chứng
Khi cố gắng giải mã dữ liệu từ bảng được mã hóa, kết quả được hiển thị ở dạng HEX
#####################################
trường hợp thử nghiệm
tạo bảng t11 [h1 varchar[300]]
chèn vào các giá trị t11 [hex[aes_encrypt['helorld','robert']]];
Truy vấn OK, 1 hàng bị ảnh hưởng [0. 02 giây]
localhost@mysql. sock][cướp][. 12. ]> chọn * từ t11;
+------------------------------------+
h1
+------------------------------------+
150C38A19F36D45356B5EE8FF47F354E
+------------------------------------+
1 hàng trong bộ [0. 00 giây]
chọn aes_decrypt[UNHEX['150C38A19F36D45356B5EE8FF47F354E'],'robert'] từ t11;
+-------------------------------------------------
aes_decrypt[UNHEX['150C38A19F36D45356B5EE8FF47F354E'],'robert']
+-------------------------------------------------
0x68656C6F726C64
+-------------------------------------------------
1 hàng trong bộ [0. 00 giây]
thay đổi
Gây ra
Đăng nhậpĐể xem đầy đủ chi tiết, hãy đăng nhập bằng tài khoản Hỗ trợ My Oracle của bạn
Đăng kýKhông có tài khoản Hỗ trợ Oracle của tôi?
Trong tài liệu này
Hỗ trợ Oracle của tôi cung cấp cho khách hàng quyền truy cập vào hơn một triệu bài báo kiến thức và cộng đồng hỗ trợ sôi nổi gồm các đồng nghiệp và chuyên gia Oracle
Hàm MySQL AES_DECRYPT trả về chuỗi gốc sau khi giải mã chuỗi được mã hóa. Nó sử dụng thuật toán AES [Advanced Encryption Standard] để thực hiện giải mã. Hàm AES_DECRYPT trả về chuỗi đã giải mã hoặc NULL nếu phát hiện dữ liệu không hợp lệ.
Giá trị do hàm AES_DECRYPT trả về là chuỗi văn bản gốc được mã hóa bằng hàm AES_ENCRYPT. Hàm AES_DECRYPT chấp nhận hai tham số là chuỗi mã hóa và chuỗi dùng để giải mã chuỗi mã hóa.
cú pháp.
AES_DECRYPT[encrypted_string, key_string]
Thông số được sử dụng.
- mã hóa_string - Nó được sử dụng để chỉ định chuỗi được mã hóa
- key_string – Nó được sử dụng để chỉ định Chuỗi được sử dụng để giải mã chuỗi mã hóa
Giá trị trả về.
Hàm AES_DECRYPT trong MySQL trả về chuỗi văn bản gốc được mã hóa bằng hàm AES_ENCRYPT.
Các phiên bản được hỗ trợ của MySQL.
- mysql 5. 7
- mysql 5. 6
- mysql 5. 5
- mysql 5. 1
- mysql 5. 0
- mysql 4. 1
Ví dụ 1. Thực hiện chức năng AES_DECRYPT trên một chuỗi.
SELECT AES_DECRYPT[AES_ENCRYPT['ABC', 'key_string'], 'key_string'];
đầu ra.
ABC
Ví dụ-2. Triển khai hàm AES_DECRYPT trên một chuỗi có sự kết hợp của các ký tự và giá trị số nguyên.
Nếu tôi chạy truy vấn sau trong ứng dụng quản lý Cơ sở dữ liệu MySQL của mình hoặc trực tiếp trên cơ sở dữ liệu thông qua SSH, tôi sẽ nhận được kết quả chính xác là 122379
. Nhưng khi tôi chạy nó trong metabase, tôi nhận được 0x31323233
SELECT AES_DECRYPT[UNHEX[,]] FROM users;
Tôi đang sử dụng khóa mã hóa 256-bit. Bất cứ ý tưởng những gì tôi có thể làm để làm cho nó hoạt động bình thường?
Hàm MySQL AES_DECRYPT[] giải mã một chuỗi được mã hóa bằng thuật toán AES để trả về chuỗi gốc. Nó trả về NULL nếu phát hiện dữ liệu không hợp lệ
cú pháp
AES_DECRYPT[crypt_str, key_str];
Tranh luận
NameDescriptioncrypt_strMột chuỗi được mã hóa. key_strString để sử dụng để giải mã crypt_str
Sơ đồ cú pháp
Phiên bản MySQL. 5. 6
Thí dụ
Mã số
SELECT AES_DECRYPT[AES_ENCRYPT['mytext','mykeystring'],
'mykeystring'];
Giải trình
Câu lệnh MySQL ở trên giải mã chuỗi 'mytext' được mã hóa bằng mykeystring và trả về chuỗi gốc mytext
Đầu ra mẫu
mysql> SELECT AES_DECRYPT[AES_ENCRYPT['mytext','mykeystring'],'mykeystring']; +----------------------------------------------------------------+ | AES_DECRYPT[AES_ENCRYPT['mytext','mykeystring'],'mykeystring'] | +----------------------------------------------------------------+ | mytext | +----------------------------------------------------------------+ 1 row in set [0.00 sec]
bảng mẫu. bảng kiểm tra
Mã số
SELECT description, AES_DECRYPT[description,'passw']
FROM testtable;
Giải trình
Câu lệnh MySQL ở trên truy xuất dữ liệu được giải mã từ cột 'mô tả' được mã hóa từ 'bảng kiểm tra'