Odpowiedz

8

Mechanizm szyfrowania nie znajduje się w kodzie języka jako takiego. Znajduje się on w bibliotece o nazwie plexus-cipher. Zawsze jest w dystrybucji maven. Mój jest na lib/plexus-cipher-1.7.jar będący 3.0.5 wersją maven.

Rzeczywisty szyfr to AES/CBC/PKCS5Padding. Klucz dla szyfru i IV dla łańcucha blokowego pochodzi z iterowania SHA-256 - nad podanym hasłem (zakodowanym jako UTF-8) połączonym z 64-bitową losową solą specyficzną dla JVM (zazwyczaj SHA1PRNG) raz lub dwa razy.

Nie ma tu dużych niespodzianek. Wydaje się, że jest w tym samym formacie, z którego korzysta teraz każda inna dusza.

Gór szczegółów można znaleźć czytając źródła na GitHub project page

+0

Tak więc 64-bitowy losowy sól zapewnia niepowtarzalność za każdym razem, ale sól potrzebuje nasienie jak dobrze, to jest czas systemowy, czy coś innego? – SDS

+1

Zależy od przypadkowej implementacji PRNG, którą znajdzie jako pierwszą. Na przykład, na Linuksie, 'NativePRNG' uruchamia się czytając jego seed z'/dev/random', co było przyczyną niepowodzenia kerfle. Nie mogę stwierdzić, które zasoby systemowe używa awaryjny "SHA1PRNG". –

+0

Dziękuję za wyjaśnienie – SDS

Powiązane problemy