Cách nào tốt hơn để sử dụng openssl hoặc windows capi cho các vấn đề về giải mã sinh thái danh sách chuyên nghiệp và con của cả hai. và nếu nó có thể viết chương trình mã hóa của tôi trên openssl và giải mã nó với cửa sổ capi không có vấn đề hoặc có một số vấn đề với điều này.openssl so với windows capi
Trả lời
Vì mục đích mã hóa, trước tiên tôi thấy dễ dàng hơn khi nghĩ về quản lý khóa. Các khóa được lưu trữ ở đâu, chúng được tạo ra như thế nào, ai sử dụng chúng và cách chúng được tiêu hủy một cách an toàn. Theo kinh nghiệm của tôi, quản lý khóa là điều hạn chế hầu hết cấu trúc ứng dụng.
CryptoAPI cung cấp API để truy cập các khóa được lưu trữ ở các vị trí tùy ý, thông qua trình điều khiển ("CSP") được đăng ký trong hệ điều hành. OpenSSL có thể cung cấp một cái gì đó tương tự với sự giúp đỡ của OpenSC, nhưng trình điều khiển sau đó sẽ hỗ trợ PKCS # 11 API. Dù bằng cách nào, trình điều khiển là một số loại DLL được cung cấp bởi bất cứ ai đã xây dựng thiết bị lưu trữ (giả sử rằng khóa được lưu trữ và sử dụng trong thiết bị phần cứng).
Nếu bạn muốn có thể sử dụng các khóa được lưu trữ trong thiết bị phần cứng (nơi thiết bị có thể là thẻ thông minh, HSM, ... bất kỳ thứ gì có thể thực hiện một số mã hóa nhưng sẽ từ chối tự cung cấp khóa) phải trải qua cả CryptoAPI hoặc PKCS # 11. CryptoAPI, theo bản chất, chỉ dành cho Windows, vì vậy PKCS # 11 là cách để đi nếu bạn muốn mã của bạn có khả năng chạy trên các hệ thống không phải Windows (MacOS, Linux, Solaris ...). Nếu bạn đi theo cách PKCS # 11, bạn có thể muốn thử NSS thay cho OpenSSL. NSS là thư viện được sử dụng trong trình duyệt có nguồn gốc từ Netscape (ví dụ: Firefox). Nó là mã nguồn mở.
Mặt khác, nếu bạn chỉ nhắm mục tiêu hệ thống Windows, thì CryptoAPI sẽ giảm bớt phân phối, vì nó đã có sẵn, không cần thêm DLL.
Nếu bạn sẵn sàng bỏ phần cứng và muốn sử dụng mã hóa phần mềm, với các khóa được giữ trong RAM, có thể bạn sẽ không muốn sử dụng CryptoAPI, vốn không đủ mạnh về số thuật toán mà nó thực hiện và các biến thể nó chấp nhận (ví dụ: CryptoAPI nhấn mạnh vào các số mũ công khai RSA nhỏ hơn 32 bit - đây là trường hợp bình thường, nhưng giới hạn vẫn tùy ý và có khả năng gây phiền toái). Có rất nhiều thư viện mã hóa ngoài kia; ngoài OpenSSL và NSS, bạn có thể muốn điều tra Crypto++, khá trưởng thành và được cho là thân thiện với C++.
- 1. Trình duyệt web hỗ trợ Windows Embedded so với Windows CE so với Windows Mobile?
- 2. Tạo chứng chỉ OpenSSL trên Windows
- 3. LLMNR trên Windows so với Zeroconf so với Bonjour
- 4. OpenSSL và Apple Keychain tích hợp
- 5. PSK Gợi ý với OpenSSL
- 6. Sử dụng chứng chỉ và khóa cá nhân từ cửa hàng cert Windows với OpenSSL
- 7. Chạy curl với OpenSSL 0.9.8 đối với máy chủ OpenSSL 1.0.0 gây ra lỗi bắt tay?
- 8. .NET Remoting so với các dịch vụ Web so với Windows Communication Foundation (WCF)
- 9. Sử dụng OpenSSL với kênh tùy chỉnh
- 10. Yêu cầu HTTPS với Boost.Asio và OpenSSL
- 11. Cách sử dụng OpenSSL với Visual Studio
- 12. Sự cố OpenSSL với Ruby 1.9.3
- 13. các vấn đề với RVM và OpenSSL
- 14. Điều khiển người dùng so với Mẫu Windows
- 15. Xác định Windows 64 bit so với 32 bit
- 16. Windows SharePoint Services so với Microsoft Office SharePoint Server?
- 17. Độ chính xác thời gian Java trên Windows XP so với Windows 7
- 18. Tăng SSL với Visual Studio 2010 và OpenSSL
- 19. pymssql so với pyodbc so với adodbapi so với ...
- 20. APL so với A so với J so với K?
- 21. OpenSSL uninitialized (NameError)
- 22. Sự cố SSL (openssl)
- 23. Không thể xây dựng thư viện OpenSSL bên ngoài cho Android NDK trên Windows/Cygwin
- 24. System.Security.Cryptography so với Windows.Security.Cryptography
- 25. Có thể OpenSSL trên Windows sử dụng kho chứng chỉ hệ thống không?
- 26. metaphone so với soundex so với NYSIIS
- 27. Application_Start so với OnInit so với constructor
- 28. NSImage so với CIImage so với CGImage?
- 29. Ngày so với TimeStamp so với lịch?
- 30. GetKeyState() so với GetAsyncKeyState() so với getch()?
[Tôi đã đấu tranh] (http://stackoverflow.com/q/43802185/267874) để làm cho OpenSSL trên Windows hoạt động với HSM trong nhiều tuần và tôi phải nói, câu trả lời đơn giản của bạn ở đây đã xóa toàn bộ hình ảnh cho tôi! Bạn của tôi, thực sự biết cách cung cấp thông tin rõ ràng và có liên quan. Cảm ơn bạn! Tôi đi ngay bây giờ, hãy thử cách PKCS # 11, có thể là đa nền tảng ngay bây giờ! –