Tôi khuyên bạn nên tránh sử dụng mã hóa không đối xứng để mã hóa các tệp của mình. Mã hóa bất đối xứng đắt hơn đáng kể (tính toán) so với các thuật toán mã hóa đối xứng có cường độ bằng nhau. Để mã hóa các tệp lớn, tôi khuyên bạn nên sử dụng AES qua RSA bất kỳ ngày nào.
Đối với câu hỏi của bạn - API bảo vệ dữ liệu (DPAPI) Gaurav đề cập là đặt cược tốt nhất của bạn trên Windows. How to: Use Data Protection
DPAPI cung cấp ProtectedMemory và ProtectedData. Trước đây cho phép bạn bảo vệ bí mật trong bộ nhớ, sau này cho phép bảo vệ bí mật tồn tại trên đĩa. API quản lý mã hóa & giải mã cho bạn và (tùy thuộc vào phạm vi được chỉ định) sẽ bảo vệ dữ liệu của bạn khỏi truy cập/giải mã bởi người dùng khác hoặc trên các máy khác.
Để sử dụng DPAPI trong trường hợp của bạn, tôi khuyên bạn nên lấy mật khẩu người dùng, tạo khóa mã hóa đối xứng (ví dụ: PasswordDeriveBytes), lưu trữ bằng DPAPI và hạn chế quyền truy cập cho người dùng hiện tại.
Ứng dụng của bạn có thể sử dụng khóa đó để mã hóa tất cả video tải lên. Ứng dụng của bạn có thể lấy khóa mà không cần nhắc lại người dùng và khóa có thể được người dùng tạo lại trên hệ thống mới.
Một nhược điểm là ứng dụng độc hại cũng được thực hiện bởi cùng một người dùng có khả năng có thể lấy khóa bí mật. Để bảo vệ chống lại tình huống này, entropy bổ sung (hiệu quả là muối) phải được cung cấp trong Protect & Unprotect. Tuy nhiên việc thực hiện điều này có thể sẽ đi lạc khỏi mục tiêu của bạn - bởi vì bây giờ bạn sẽ cần nhắc người dùng về một thứ có vẻ khủng khiếp như mật khẩu.
Ngoài ra: thú vị đọc:
Bạn cũng có thể tìm thấy bài viết này từ Backblaze một chi thú vị. Mặc dù họ không giải thích làm thế nào họ hỗ trợ kịch bản của bạn (cập nhật mã hóa mà các nhà cung cấp điện toán đám mây không thể giải mã - duy nhất mà họ cung cấp như một dịch vụ): http://blog.backblaze.com/2008/11/12/how-to-make-strong-encryption-easy-to-use/
Disclaimer: Tôi là khách hàng Backblaze hài lòng, nhưng tôi không có cách nào khác liên kết với dịch vụ của họ.
PS: Hãy dành thời gian để đánh dấu các câu trả lời có thể chấp nhận được. Cộng đồng sẽ thưởng cho bạn.
Điều này có thể giúp http://stackoverflow.com/questions/723653/storing-encryption-keys-best-practices –