Tôi muốn biết liệu thuật toán thông báo MD5 có được bảo đảm khả dụng trong tất cả các thiết bị Android trước khi tôi bỏ qua ngoại lệ đã kiểm tra mà MessageDigest.getInstance("MD5")
có thể ném hay không.MD5 có được đảm bảo có sẵn để sử dụng với MessageDigest trong Android không?
Trả lời
Android JCE (Phần mở rộng mật mã Java) dựa trên việc triển khai bouncycastle nhưng bị tước xuống. bouncycastle cung cấp một tấn MessageDigests khác nhau có thể được tìm thấy here.
Không có gì đảm bảo rằng mọi thiết bị Android đều hỗ trợ MD5 nhưng rất phổ biến và có khả năng xuất hiện trên mọi thiết bị vì nó được hỗ trợ trong bouncycastle. Nếu bạn muốn biết liệu thiết bị có hỗ trợ MD5 hay không, bạn có thể kiểm tra các thuật toán mà thiết bị hỗ trợ. Thêm vào đó là here.
Tôi nhận được java.security.NoSuchAlgorithmException: MessageDigest MD5 implementation not found
trên một số thiết bị. Dưới đây là danh sách:
GT-I8190
GT-I9100
GT-P3100
GT-S7562
HTC EVO 3D X515m
HTC Sensation 4G
HTC Sensation XL với Beats Audio X315b
LGL86C
LT22i
LT25i
LT26i
LT26ii
LT29i
SAMSUNG-SGH-I727
SGH-T769
SHV-E160K
SM-T211
ST21i
ST23i
ST26i
T7
và những người khác.
Đây là số liệu thống kê chủ yếu cho Indonesia. Điểm hài hước là, các số liệu thống kê được cung cấp bởi Crittercism, và ngoại lệ được ném bởi Crittercism quá (có vẻ như nó sử dụng MD5 trong phiên bản mới nhất).
- 1. md5 với Android và PHP
- 2. Có một cái nhìn và cảm giác nào đó được đảm bảo có sẵn không?
- 3. Có md5 có bảo đảm duy nhất cho các chuỗi ngắn (số chuỗi hữu hạn) không?
- 4. Đường ray: Đá quý có được bảo đảm không?
- 5. Dịch vụ Android có được bảo đảm để gọi onDestroy() không?
- 6. TCP có được đảm bảo đến đúng thứ tự không?
- 7. Sử dụng md5 bảo đảm thậm chí nó khó khăn hơn
- 8. Đảm bảo không đảm bảo VirtualMachineError
- 9. Yêu cầu Ajax có được đảm bảo gửi cookie không?
- 10. Nút Mô tả DOM có được đảm bảo để không được hiểu là HTML không?
- 11. Cách đảm bảo SMS được gửi trong Android
- 12. Thứ tự trong truy vấn phụ có được bảo đảm để được giữ nguyên không?
- 13. Liệu entrySet() trong LinkedHashMap có đảm bảo trật tự không?
- 14. CERs có thể được sử dụng để đảm bảo rằng quyết toán không bao giờ được gọi?
- 15. Trong Java, khối "cuối cùng" có được bảo đảm được gọi (trong phương thức chính) không?
- 16. Args được đảm bảo là không null?
- 17. Đảm bảo chỉ có một ứng dụng ví dụ
- 18. trong ruby, tại sao không được xác định? hoạt động như mong đợi khi được sử dụng với đảm bảo
- 19. Liệu readdir() có đảm bảo một đơn hàng không?
- 20. Làm cách nào để đảm bảo API không được hỗ trợ (cấp cao hơn) không được gọi trong Android?
- 21. Cách tiếp cận có thể có để đảm bảo điểm cuối API Rest bằng cách sử dụng Facebook OAuth
- 22. API Zeroconf có sẵn trong Android không?
- 23. Thuật toán MessageDigest MD5 không trả lại những gì tôi mong đợi
- 24. Có phải cho (auto i: unordered_map) được đảm bảo có cùng thứ tự mỗi lần không?
- 25. Thuật toán Hindley-Milner: sử dụng các loại để đảm bảo ràng buộc được áp dụng
- 26. Writer Monad có đảm bảo kết nối đúng không?
- 27. Là unmodifiableCollection.get được khởi tạo tĩnh có được bảo đảm không?
- 28. Lớp MD5 không có trong System.Security.Cryptography
- 29. Android có trình xem PDF được tích hợp sẵn không?
- 30. Đối tượng có được bảo đảm di chuyển khi nó được trả về không?
Nếu đây là một ứng dụng mới và bạn cần băm để bảo mật, có thể bạn không còn sử dụng MD5 vì bảo mật của nó bị xâm phạm nghiêm trọng. – Henry
Tôi đang sử dụng MD5 để băm URL cho mục đích lưu vào bộ nhớ cache nội bộ, không có vấn đề bảo mật nào ở đây – daniel