2008-09-20 109 views

Trả lời

5

tôi sử dụng thư viện sau:

http://www.efgh.com/software/rsa.htm

Đó là miền công cộng, nhỏ gọn, tự chứa và thực hiện làm việc tốt.

+9

Thư viện này không sử dụng đệm. Đó là một thiếu sót đáng kể. – Accipitridae

+0

Đúng vậy, tôi đã cải thiện nó bằng cách thêm vào đó. Vấn đề là, tôi bị mất mã :(.Nó không phải là quá khó để thêm vào mặc dù ... – Zombies

+1

Nó sử dụng 16-bit ints như là nguyên tố nguyên thủy. Nó có thể khá chậm trên phần cứng hiện đại. Ngoài ra, nếu tôi hiểu chính xác, nó sử dụng một triển khai ngây thơ cho hoạt động pow/mod. Các thuật toán nhanh hơn tồn tại ... –

12

Tôi nghĩ OpenSSL là một lựa chọn tốt. Nó duy trì tốt, và giá là đúng :)

http://www.openssl.org

+0

Hãy nhớ rằng OpenSSL không tương thích với GPL. –

+0

Nó cũng không phải là C++ – dvorak

+4

Nó được viết bằng C và có thể sử dụng ngay trong chương trình C++. – KTC

25

Nếu bạn đang sử dụng Win32, tại sao bạn không chỉ đơn giản là sử dụng được xây dựng trong win32 crypto-API?

Dưới đây là một ví dụ nhỏ như thế nào nó hoạt động trong thực tế:

http://www.codeproject.com/KB/security/EncryptionCryptoAPI.aspx

+0

Dường như không phải là C++. – dvorak

+2

API Win nằm trong C, có thể sử dụng ngay trong chương trình C++. – KTC

+0

Đúng. Nếu bạn thích giao diện C++, hãy viết cho mình một trình bao bọc xung quanh nó. Có thể là một ý kiến ​​hay trong trường hợp bạn muốn thay đổi API. –

17

Crypto++ - Họ có DIST được xác thực FIPS của NIST cho MSVC 6, 7.1 và 8 ở trên các gói tự xây dựng mã nguồn bình thường.

+2

không có câu hỏi nào đối với tôi, con dấu NIST có nghĩa là rất nhiều. Mã hóa không phải là một trong những thứ bạn muốn gây rối - bạn phải có khả năng tin tưởng rằng nó được triển khai đúng và không có lỗ hổng bảo mật. –

4

Một giải pháp thay thế khác là libbeecrypt. Một sản phẩm rất trưởng thành với việc triển khai lắp ráp trên nhiều nền tảng.

1

Tôi đã sử dụng OpenSSL trước đây và đã tìm thấy nó là một thư viện tuyệt vời cho các API mật mã bao gồm AES, RSA, 3DES.

6

Có thể Botan là giải pháp thay thế? Nó là một thư viện C++ với một giấy phép BSD hỗ trợ các thuật toán RSA.