AES_DECRYPT MySQL không hoạt động

AES_DECRYPT MySQL không hoạt động

Cột Aes_decrypt không thể giải mã (ID tài liệu 2733826. 1)

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ên
Thô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

Oracle cung cấp một kho ứng dụng đám mây và dịch vụ nền tảng toàn diện và được tích hợp đầy đủ. Để biết thêm thông tin về Oracle (NYSE. ORCL), hãy truy cập Oracle. com
� Oracle. Liên hệ và trò chuyện. Ủng hộ. cộng đồng. Kết nối với chúng tôi.
AES_DECRYPT MySQL không hoạt động
.
AES_DECRYPT MySQL không hoạt động
.
AES_DECRYPT MySQL không hoạt động
. Thông báo pháp lý. Điều khoản sử dụng

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;

AES_DECRYPT MySQL không hoạt động

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

AES_DECRYPT MySQL không hoạt động

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'

Làm cách nào để giải mã mã hóa AES trong MySQL?

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ệ

Làm cách nào để giải mã chuỗi trong MySQL?

AES_DECRYPT() giải mã chuỗi được mã hóa crypt_str bằng chuỗi khóa key_str và trả về chuỗi văn bản gốc ban đầu. Nếu một trong hai đối số của hàm là NULL , hàm sẽ trả về NULL. Nếu AES_DECRYPT() phát hiện dữ liệu không hợp lệ hoặc phần đệm không chính xác, nó sẽ trả về NULL.

Làm cách nào để chèn dữ liệu được mã hóa trong MySQL?

Để kích hoạt mã hóa cho vùng bảng hệ thống mysql, chỉ định tên vùng bảng và tùy chọn ENCRYPTION trong câu lệnh ALTER TABLESPACE . mysql> THAY ĐỔI TABLESPACE mysql ENCRYPTION = 'Y'; .