Giới thiệu Công cụ sinh khóa cho giải thuật RSA (RSA Keys Generator)

Việc trao đổi cặp khóa trong quá trình kết nối giữa các hệ thống sử dụng giải thuật RSA là bắt buộc. Đối với các hệ thống cùng ngôn ngữ việc này có vẻ dễ dàng hơn một chút so với các hệ thống sử dụng các ngôn ngữ khác nhau (ví dụ .NET vs JAVA vs PHP vs …)

Trong ba thằng kể trên, có lẽ thằng .NET tôi cho là đơn giản nhất, cách thức đơn giản, không cần hiểu biết nhiều về giải thuật này, search google một phát là hiểu được ngay cách sử dụng và áp dụng được vào project.

Tuy nhiên đa phần các lập trình viên (dev) .NET khi mới sử dụng giải thuật này hay bị vấn đề khi gửi public key cho đối tác.

Bản chất các ngài code .NET đơn giản chỉ sinh một phát là ra cặp key định dạng XML, sau đó lấy hết sức bình sinh, ném cho ông đối tác sử dụng. Thật may nếu ông đối tác cũng dùng .NET, tuy nhiên trong thực tế thì ko như vậy. Thường chúng ta sẽ gặp ông đối tác sử dụng Java/PHP hoặc một trường phái nguồn mở nào đó. Kết quả, tay đối tác nó bảo: gửi cho nó định dạng khác (PEM,DER,CER,…) vì XML nó không dùng được, đồng thời nó cũng ném lại cho ta một public key có dạng .DER/CER/PEM, … lúc này ngài dev .NET khả năng sẽ search tung Google hoặc là phải cầu viện tới các ngài khác đã kinh qua tình huống này … (Và có thể khi đọc bài này, ngài đã được Google dẫn tới bài viết này – nếu vậy tôi mừng lắm ? ).

Để sinh cặp key sử dụng, ngài có thể sử dụng thư viện openssl, keytool (của java), … và nhiều tool khác. Nhưng tôi đồ rằng, nếu ngài code .NET, ngài sẽ thích cái tool mà tôi giới thiệu sau đây.

RSA Keys Generator

Giới thiệu qua về tool này:

  • Tool này tôi tự chế, dựa theo nhu cầu của tôi trong quá trình làm việc, có thể sinh ra key của 03 định dạng phổ biến: XML, PEM, DER để dùng được cho cả .NET, JAVA, PHP
  • Tool này tôi có sử dụng một số source code trên stackoverflow để code/xuất ra định dạng mong muốn (PEM)
  • Tool này tôi up source lên github và các ngài có thể lấy về sử dụng thoải mái. https://github.com/dicay/RsaKeysGenerator.NET
  • Code đơn giản, dễ dàng có thể hiểu được bản chất của mấy em format XML/PEM/DER khác nhau như nào và có thể tự code để xử lý được phần đọc các file PEM/DER trong .NET cũng như XML trong JAVA, PHP

rsagenkey-source

Chúc các ngài code vui vẻ, và mong nhận được góp ý để hoàn thiện tool, nội dung của blog.

ITZone via dicay

Chia sẻ bài viết ngay