Tôi cần thực hiện mã hóa/giải mã AES đơn khối trong ứng dụng Qt/C++ của mình. Đây là một "giữ cho người trung thực thực hiện" thực hiện, do đó, chỉ cần encrypt(key, data)
cơ bản là cần thiết - Tôi không lo lắng về các vectơ khởi tạo, vv. Đầu vào và khóa của tôi sẽ luôn chính xác là 16 byte.Mã hóa AES đơn giản bằng cách sử dụng WinAPI
Tôi muốn thực sự muốn tránh một sự phụ thuộc khác để biên dịch/liên kết/gửi với ứng dụng của tôi, vì vậy tôi đang cố gắng sử dụng những gì có sẵn trên mỗi nền tảng. Trên máy Mac, đây là một lớp lót đến CCCrypt
. Trên Windows, tôi bị lạc trong API từ WinCrypt.h
. Ví dụ về mã hóa một tệp của họ dài gần 600 dòng. Nghiêm túc?
Tôi đang xem CryptEncrypt
, nhưng tôi đang rơi xuống lỗ thỏ phụ thuộc mà bạn phải tạo trước khi bạn có thể gọi điều đó.
Có ai có thể cung cấp ví dụ đơn giản về mã hóa AES bằng API Windows không? Chắc chắn có một cách để làm điều này trong một hoặc hai dòng. Giả sử bạn đã có khóa 128 bit và 128 bit dữ liệu để mã hóa.
Tôi không thể cung cấp một ví dụ WinApi đơn giản (vì có thể không tồn tại như bạn đã lưu ý), nhưng bạn đã xem xét OpenSSL chưa? Tôi đã sử dụng nó trong một số dự án và nó khá đơn giản. Tôi biết bạn không muốn thêm phụ thuộc khác, nhưng nó có thể sẽ trở thành một giải pháp đơn giản hơn. – JoeFish