BCrypt API của Windows: Có nên dùng làm nền tảng bảo mật tái sử dụng cho nhiều ngôn ngữ lập trình? (3 người xem)

Người dùng đang xem chủ đề này

Tôi tuân thủ nội quy khi đăng bài

phuongnam366377

Thành viên thường trực
Tham gia
25/10/19
Bài viết
253
Được thích
231
Tôi đang nâng cấp và viết tiếp chủ đề sau theo Puligin.dll và có liên quan File Server khi vận chuyển đến và đi qua Internet ( Ip,Port )

làm sao an toàn , hiệu quả, bảo mật tốt và xác thực vvv


Vậy tách ra chủ đề này keo ChatGPT viết bài sau bàn luận xem nên như thế nào là phù hợp vào tốt khi phát triển tiếp dự án code an toàn và bảo mật

Trên GPE này có nhiều thành viên biết nhiều ngôn ngữ lập trình mời tham gia bàn luận chủ đề này ... ChatGPT viết bài như sau

BCrypt API của Windows: Có nên dùng làm nền tảng bảo mật tái sử dụng cho nhiều ngôn ngữ lập trình?

Windows đã có sẵn BCrypt / CNG với khá nhiều tính năng mạnh như:

  • AES / AES-GCM
  • SHA-256 / SHA-512
  • HMAC
  • PBKDF2
  • RNG an toàn
  • RSA / ECC (một phần qua CNG)
Câu hỏi đặt ra là:

Có nên dùng BCrypt làm Security Core dùng chung?​

Ví dụ viết lớp lõi bằng C++ DLL, sau đó tái sử dụng cho:

  • C++
  • C++Builder
  • Delphi
  • C# / .NET
  • VBA
  • Python (ctypes / cffi)
  • PowerShell
  • ngôn ngữ khác gọi DLL/API

Một số chủ đề mong mọi người cùng trao đổi​

1. So với thư viện ngoài như OpenSSL / libsodium thì BCrypt có ưu nhược điểm gì?​

  • Native Windows
  • Không cần ship DLL ngoài
  • Hay bị phụ thuộc Windows ecosystem?

2. Có phù hợp để viết​

Ví dụ export:

AES_Encrypt_File
AES_Decrypt_File
SHA256_File
Random_Bytes
Password_Hash
Password_Verify

Rồi ngôn ngữ khác chỉ gọi lại.


3. Trải nghiệm thực tế khi dùng từ các ngôn ngữ khác nhau​

  • C++ dùng trực tiếp WinAPI thấy ổn không?
  • C++ Builder import header có khó không?
  • Delphi declare external ra sao cho gọn?
  • C# dùng P/Invoke có ổn định không?
  • Python gọi DLL hiệu năng thế nào?

4. Những khó khăn khi dùng BCrypt​

  • API dài và nhiều handle
  • Quản lý buffer khó
  • Unicode / ANSI
  • Cleanup tài nguyên
  • Error code khó đọc
  • Tài liệu khó tiếp cận?

5. Nếu bắt đầu project mới hôm nay, bạn chọn gì?​

  • BCrypt
  • OpenSSL
  • libsodium
  • .NET crypto classes
  • Tự viết wrapper riêng

Góc nhìn cá nhân​

Mình thấy với ứng dụng chạy chủ yếu trên Windows, BCrypt khá đáng quan tâm vì:

  • Có sẵn trong hệ điều hành
  • Chính chủ Microsoft
  • Hiệu năng tốt
  • Phù hợp build security layer dùng chung nhiều ngôn ngữ
Nhưng muốn dùng lâu dài có lẽ cần wrapper tốt để đơn giản hóa API.


Mời chia sẻ kinh nghiệm thực tế​

Đặc biệt anh em đang code bằng:

  • C++
  • C++Builder
  • Delphi
  • C#
  • Python
  • VBA
… vào chia sẻ góc nhìn, kinh nghiệm production, lỗi từng gặp, hoặc hướng triển khai tối ưu.

Tham khảo

tiêu đề bcrypt.h​


 
Lần chỉnh sửa cuối:
bài này nếu chưa có AI thì quá khó ... còn có ChatGPT rồi thì dựa vào

tiêu đề bcrypt.h viết các hàm Wrapper cho nó quá đơn giản khi sử dụng C++ / CBuilder viết API​


chỉ là đâu đó họ hay hơi tí hở ra vặn với vẹo và cho mình có học hành code két trường lớp và câu từ thuật ngữ chuẩn mực ( Hàm lâm )

nên úp lên đây xem sao thôi

Tôi viết hai ngày trên C++ Builder cơ bản xong

gợi ý cho ai đó tò mò tham khảo nguồn


xem nguồn trên có trên 400 unit và trên 125.000 dòng mã ... tim cái cần lấy và chỉ lấy cái cốt lõi xong dựa vào đó mà viết là xong

còn tây nó viết nguồn mở mà không mở vì thiếu nhiều Unit lệ thuộc nên tải về toàn RÁC vá RÁC nên mở mà không bao giờ mở

nhưng thực tế nó đang mở banh ra hết quan trong có biết cần cái gì mà lấy còn cái gì không cần thì chuyển vào sọt RÁC
 
Lần chỉnh sửa cuối:
Upvote 0

Bài viết mới nhất

Back
Top Bottom