tôi không bao giờ làm việc với thư viện mã hóa nhưng tôi muốn mã hóa một chuỗi có khóa cá nhân và giải mã bằng khóa công khai. làm thế nào để đạt được điều này trong C#. hãy giúp tôi với đoạn mã nhỏ. thanksLàm thế nào để mã hóa một chuỗi với khóa riêng và giải mã bằng khóa công khai?
Trả lời
AFAIK, Mặc dù về mặt kỹ thuật không có sự khác biệt về toán giữa khóa công khai và khóa riêng tư, bạn cần sử dụng chúng một cách nhất quán vì lý do bảo mật.
Bạn đang yêu cầu mã hóa bằng khóa cá nhân và giải mã bằng khóa công cộng. Đây thường là cách sai lầm. Nếu bạn muốn đi theo hướng này, nó thường là một hoạt động được gọi là "ký điện tử".
Nếu bạn ký bằng khóa riêng sao cho khóa này có thể đảo ngược bằng khóa công khai công khai, thì đó không thực sự là bí mật. Tôi cho rằng bạn chỉ đang cố gắng xác thực thư là hợp pháp từ người gửi. Những gì bạn cần là chữ ký số - vẫn được thực hiện bằng khóa công khai-khóa-riêng (hoặc "không đối xứng"). Với các chữ ký số, bản thân thông điệp không phải là bí mật (không cần bất kỳ ai có khóa công khai có thể giải mã) nhưng được kèm theo dữ liệu bổ sung, dựa trên thông báo, có thể xác minh bằng khóa công khai và có thể chỉ được tính bởi một người có khóa riêng phù hợp.
Nó sẽ trông giống như sau. Bây giờ bạn chỉ cần tìm ra nơi bạn sẽ nhận được chìa khóa.
static byte[] GenerateDigitalSignature(byte[] data, RSAParameters asymmetricKey)
{
using (var rcsp = new RSACryptoServiceProvider())
using (var cp = new SHA1CryptoServiceProvider())
{
rcsp.ImportParameters(asymmetricKey);
return rcsp.SignData(data, cp);
}
}
Điều này chỉ ký dữ liệu. Nó không mã hóa nó. –
Yup ............ –
- 1. C/C++ mã hóa/giải mã với khóa công khai
- 2. Sử dụng Khóa công cộng RSA để giải mã một chuỗi đã được mã hóa bằng Khóa riêng RSA
- 3. Mã hóa và giải mã chuỗi với khóa PHP
- 4. GnuPG: Làm thế nào để mã hóa/giải mã các tệp bằng một khóa nhất định?
- 5. Mã hóa RSA bằng khóa công khai
- 6. trao đổi khóa công khai/riêng tư trong mã hóa/giải mã OCSEP PKCS # 1
- 7. Làm cách nào để tạo một cặp khóa riêng/khóa công khai bằng cách sử dụng mật mã Node.js?
- 8. Làm thế nào để mã hóa dữ liệu bằng khóa công khai trong NodeJS?
- 9. Làm thế nào để mã hóa dữ liệu trong php bằng cách sử dụng khóa công khai/riêng?
- 10. Ruby: mã hóa tập tin/giải mã với tư nhân/khóa công khai
- 11. Cách sử dụng kỹ thuật mã hóa khóa công khai và riêng tư trong C#
- 12. RSACryptoServiceProvider khởi tạo với khóa công khai và khóa riêng
- 13. Làm thế nào để mã hóa và giải mã văn bản thuần tuý bằng khóa RSA trong Go?
- 14. Mã hóa/giải mã chuỗi văn bản bằng OpenSSL ECC
- 15. Mã hóa và giải mã một chuỗi văn bản với RSA và des3 chính
- 16. X.509: Khóa riêng/khóa công khai
- 17. PGP Mã hóa và Giải mã
- 18. Có thể mã hóa với nhiều khóa riêng (PHP) không?
- 19. Làm thế nào để giải mã một chuỗi được mã hóa bằng HMACSHA1?
- 20. gửi RSA khóa công khai vào iphone và sử dụng nó để mã hóa
- 21. Bất kỳ hướng dẫn nào về mã hóa khóa công khai trong java?
- 22. Mã hóa/giải mã RSA
- 23. Làm thế nào để có được giá trị mã hóa cơ sở 64 của chứng chỉ bằng khóa riêng?
- 24. Tôi có thể sử dụng khóa công khai của tôi để giải mã một tệp không?
- 25. cách bạn giải mã tệp .pcap SSH sử dụng mã hóa Diffie Hellman. Với các khóa công khai và riêng tư
- 26. mã hóa biểu mẫu liên hệ php với khóa công khai của tôi
- 27. Mã hóa PGP và giải mã với Java
- 28. cách mật mã khóa công khai hoạt động như thế nào
- 29. Làm cách nào để giải mã chuỗi mã hóa base64?
- 30. Mã hóa và giải mã với RSAServiceProvider trong C#
Bạn không được mã hóa chuỗi tùy ý bằng RSA. Bạn nên mã hóa khóa đối xứng ** được tạo ngẫu nhiên ** một cách chính xác với RSA. – CodesInChaos
@CodeInChaos: Tôi đồng ý rằng đó là những gì RSA đang được sử dụng trong hầu hết thời gian nhưng việc sử dụng RSA không bị hạn chế. –
AFAIK RSA không an toàn để mã hóa các chuỗi không được đệm tùy ý. – CodesInChaos