Tôi đang cố gắng để tạo ra số ngẫu nhiên mã hóa an toàn sử dụng Java và sử dụng phần mã sau để tạo ra một đối tượng SecureRandom để xem nhà cung cấp và thuật toán của nó:BouncyCastle có dịch vụ SecureRandom không?
Provider prov=new org.spongycastle.jce.provider.BouncyCastleProvider();
Security.insertProviderAt(prov, 1);
SecureRandom sr=new SecureRandom();
srProvider=sr.getProvider().toString();
srAlgorithm=sr.getAlgorithm();
(lâu đài xốp là bouncy castle tương đương cho android do Roberto Tyley - https://github.com/rtyley)
Khi tôi hiển thị cung cấp và thuật toán, nó cho thấy: Crypto phiên bản 1.0 SHA1PRNG
gì làm tôi ngạc nhiên là các nhà cung cấp không Spongycastle ngay cả khi nó được cài đặt là nhà cung cấp đầu tiên trong mã . Tôi muốn hỏi bạn a) Không phải SecureRandom được thực hiện tại Lâu đài Spongy (hay Lâu đài Bouncy). b) Điều gì "Crypto phiên bản 1.0" chính xác là (Tôi có nghĩa là nó cung cấp Sun JCE hoặc những gì?)
Thanks ...
Rubi
Cảm ơn Nikolay. Chỉ muốn biết nếu SHA1PRNG có thay thế hay không. Nó sẽ là tốt để kiểm tra SHA1PRNG và những người khác trong các công cụ kiểm tra ngẫu nhiên. –
Ít nhất là trên ICS (cổ phiếu Galaxy Nexus) là triển khai duy nhất 'SecureRandom'. SHA1PRNG là một PRNG vì vậy nó chỉ tốt như hạt giống bạn cho nó. Và nó được gieo từ '/ dev/urandom', vì vậy nó có thể không tuyệt vời như vậy. Một lần nữa, điều này là dành cho ICS, nhưng tôi nghi ngờ nó sẽ khác nhau trên các phiên bản khác. '/ dev/random' có thể rất chậm trên Android, vì vậy tôi đoán đó là lý do tại sao nó không được sử dụng. Do liên kết nó ở đây nếu bạn thực sự kiểm tra với một công cụ. –
@ Nikolay Elenkov: Cảm ơn thông tin.Làm thế nào tôi có thể nhìn thấy nếu dev/ngẫu nhiên hoặc dev/urandom được sử dụng trên thiết bị Android của tôi như là nguồn giống và làm thế nào tôi có thể thay đổi nó động trong mã của tôi? –