Tôi đang sử dụng tính năng được tích hợp sẵn Visual C# Cài đặt để lưu một số tùy chọn của chương trình của tôi. Tôi cũng muốn lưu trữ một mật khẩu, nhưng sau đó nó đến công khai ... là nó có thể mã hóa mật khẩu trước khi lưu nó bằng cách sử dụng phương pháp cài đặt này và sau đó giải mã nó trở lại?Phương pháp hay nhất khi lưu mật khẩu bằng tính năng Cài đặt C# là gì?
Trả lời
Đối với nhu cầu mã hóa đơn giản, tôi đã sử dụng DPAPI qua lớp ProtectedData. Để làm cho giá trị được mã hóa kết quả có thể lưu trữ được trong một tệp văn bản hoặc đăng ký, tôi mã hóa mảng byte kết quả.
Đây là lớp tôi đã viết để bọc này lên:
namespace SomeNamespace
{
using System;
using System.Security.Cryptography;
using System.Text;
/// <summary>
/// used for encryption and decryption
/// </summary>
public static class DataProtector
{
private const string EntropyValue = "secret";
/// <summary>
/// Encrypts a string using the DPAPI.
/// </summary>
/// <param name="stringToEncrypt">The string to encrypt.</param>
/// <returns>The encrypted data.</returns>
public static string EncryptData(string stringToEncrypt)
{
byte[] encryptedData = ProtectedData.Protect(Encoding.Unicode.GetBytes(stringToEncrypt), Encoding.Unicode.GetBytes(EntropyValue), DataProtectionScope.LocalMachine);
return Convert.ToBase64String(encryptedData);
}
/// <summary>
/// Decrypts a string using the DPAPI.
/// </summary>
/// <param name="stringToDecrypt">The string to decrypt.</param>
/// <returns>The decrypted data.</returns>
public static string DecryptData(string stringToDecrypt)
{
byte[] decryptedData = ProtectedData.Unprotect(Convert.FromBase64String(stringToDecrypt), Encoding.Unicode.GetBytes(EntropyValue), DataProtectionScope.LocalMachine);
return Encoding.Unicode.GetString(decryptedData);
}
}
}
Có, nhờ mã của bạn, tôi quản lý để làm điều đó một mình ... Tôi yêu bạn !!! –
Nếu bạn mã hóa mật khẩu, bạn sẽ vẫn phải lưu trữ khóa giải mã ở đâu đó trong chương trình, do đó, nó vẫn đảm bảo an toàn do tối nghĩa.
Tuy nhiên, nó sẽ giữ cho những người trung thực trung thực. Thực tế phổ biến nhất mà tôi đã thấy là hệ thống thách thức/phản hồi, nơi người dùng đặt tên đăng ký, chương trình cung cấp chuỗi thách thức và bạn gửi cho họ chuỗi phản hồi tương ứng (được mã hóa), người dùng cắt và dán vào hộp thoại đăng ký trong chương trình. Chương trình giải mã phản hồi, so sánh nó với thử thách, và tắt bạn đi.
Tất nhiên, vì bạn vẫn phải cung cấp mật khẩu giải mã trong chính chương trình, nó vẫn có thể bị đánh bại bởi một hacker xác định.
Cách đơn giản để thực hiện việc này là tự mã hóa mật khẩu. Bạn sẽ không bao giờ có thể không mã hóa nó, nhưng bạn sẽ có thể so sánh mật khẩu do người dùng nhập vào nó.
1 Tôi thích ý tưởng đó. –
Bạn có thể cho tôi một gợi ý làm thế nào tôi có thể "mã hóa mật khẩu với chính nó" ... Bạn có ý nghĩa gì bởi điều đó? Cảm ơn bạn. –
Tôi nghi ngờ OP muốn lưu trữ mật khẩu để người dùng không cần nhập lại mật khẩu ... Nếu đó là trường hợp, giải pháp này không hữu ích;) –
- 1. Phương pháp hay nhất để lưu trữ tên người dùng và mật khẩu trên iPhone là gì?
- 2. Có phương pháp hay nhất để lưu cài đặt giao diện người dùng trong tệp không?
- 3. Các phương pháp hay nhất để lưu trữ cài đặt giao diện người dùng?
- 4. Phương pháp hay nhất khi lưu trữ hình ảnh cho thư viện là gì?
- 5. Chỉ mục MySQL - các phương pháp hay nhất là gì?
- 6. Lưu cài đặt ứng dụng trong C#
- 7. Các phương pháp hay nhất cho kho lưu trữ Kiln là gì?
- 8. Các phương pháp hay nhất về khả năng tương tác ngôn ngữ là gì?
- 9. Lưu mật khẩu bằng Md5
- 10. Các phương pháp hay nhất để chuyển đổi loại an toàn trong C# là gì?
- 11. Các phương pháp hay nhất để tự cập nhật các ứng dụng PHP + MySQL là gì?
- 12. Các phương pháp hay nhất để xử lý các chuỗi Unicode trong C# là gì?
- 13. Phương pháp hay nhất với truy vấn phương tiện trong CSS3 là gì?
- 14. Phương pháp hay nhất để xuất canvas với hình ảnh chất lượng cao là gì?
- 15. GAE: các phương pháp hay nhất để lưu trữ khóa bí mật?
- 16. Nhắc mật khẩu tên người dùng trong khi cài đặt dịch vụ windows trong C#
- 17. Khôi phục mật khẩu bằng mật khẩu sha1 băm
- 18. Một số phương pháp hay nhất của Thư viện chuẩn C++ là gì?
- 19. Phương pháp hay nhất khi tạo ID tài liệu trong couchdb là gì?
- 20. Caching $ (this) trong jQuery là phương pháp hay nhất?
- 21. Các vấn đề cập nhật ứng dụng Android và các phương pháp hay nhất là gì?
- 22. Cách tốt nhất để lưu mật khẩu vào sql
- 23. Các phương pháp hay nhất để ký hợp đồng .NET?
- 24. Các phương pháp hay nhất của Team City để triển khai nhiều tầng là gì?
- 25. Đặt lại mật khẩu bằng cách gửi email mật khẩu tạm thời
- 26. Định vị tuyệt đối có phải là phương pháp hay nhất hay tôi nên tránh nó?
- 27. Cơ sở hạ tầng cài đặt động Django và các phương pháp hay nhất
- 28. PostgreSQL dưới tên Lion: Mật khẩu là gì?
- 29. Các phương pháp hay nhất về Javascript
- 30. Chuỗi kết nối Các phương pháp hay nhất
https://crackstation.net/hashing-security.htm – Soren