Ciri khas versi baharu ini ialah kemunculan sokongan FPGA (selain CPU, GPU dan Xeon Phi). Untuk papan
Untuk bcrypt, prestasi yang dicapai sebanyak ~119k c/s dengan 2^5 lelaran (β$2b$05β) dengan penggunaan kuasa ~27 watt dengan ketara melebihi keputusan untuk GPU terkini setiap papan, setiap harga perkakasan dan setiap watt . Juga disokong
Untuk mempercepatkan kerja, kami melaksanakan penggunaan topeng (mod "βtopeng", termasuk dalam kombinasi dengan mod lain) dan perbandingan cincang yang dikira dengan yang dimuatkan pada bahagian FPGA. Dari perspektif pelaksanaan, banyak reka bentuk (cth.
Perubahan penting lain:
- Sokongan untuk sejumlah besar jenis cincang tambahan, sifir, dsb., termasuk cincang kata laluan klasik (contohnya, daripada versi baharu QNX), serta dompet mata wang kripto, arkib yang disulitkan dan sistem fail yang disulitkan (contohnya, Bitlocker dan FreeBSD geli), serta sokongan untuk jenis format baharu yang disokong sebelum ini (contohnya, sokongan tambahan untuk bcrypt-pbkdf untuk softraid OpenBSD) dan banyak lagi. Secara keseluruhan, 80 format telah ditambahkan pada CPU dan 47 pada OpenCL. Jumlah bilangan format kini ialah 407 pada CPU (atau 262 tidak termasuk format "dinamik" yang dikonfigurasikan daripada fail konfigurasi) dan 88 pada OpenCL.
- Keengganan untuk menyokong bahasa CUDA yang memihak kepada OpenCL, yang sama sekali tidak mengganggu penggunaan penuh GPU NVIDIA (malah membantu, berkat memfokuskan pembangunan dan pengoptimuman pada satu pelaksanaan setiap format untuk GPU dan bukannya dua pelaksanaan sebelumnya).
- Sokongan untuk set arahan SIMD baharu - AVX2, AVX-512 (termasuk untuk generasi kedua Xeon Phi) dan MIC (untuk generasi pertama) - serta penggunaan SIMD yang lebih universal dan lengkap dalam pelaksanaan pelbagai format, termasuk penggunaan arahan yang disokong sebelum ini ditetapkan sehingga AVX dan XOP pada x86(-64) dan
NEON, ASIMD dan AltiVec pada ARM, Aarch64 dan POWER, masing-masing. - Banyak pengoptimuman untuk CPU dan OpenCL, kedua-duanya untuk berfungsi dengan lebih cekap dengan sejumlah besar cincang secara serentak (contohnya, memuatkan 320 juta cincang SHA-1 pada GPU telah diuji), dan untuk meningkatkan kelajuan pengiraan cincang. Sebahagian daripada pengoptimuman ini adalah universal, sesetengahnya meliputi subset format yang berbeza, dan kebanyakannya khusus untuk format individu.
- (Auto-)konfigurasi penimbalan optimum kata laluan yang disemak pada CPU (ββtune=auto βverbosity=5β) dan saiz kerja optimum pada OpenCL (didayakan secara lalai), termasuk mengambil kira tanjakan perlahan sehingga kekerapan operasi penuh daripada GPU siri NVIDIA GTX 10xx dan lebih baharu. Menggunakan cincang yang sebenarnya dimuatkan dan panjang sebenar kata laluan yang disemak (apabila diketahui lebih awal) untuk penalaan automatik tersebut.
- Menambah pengkompil untuk "ungkapan dinamik" yang dinyatakan secara langsung pada baris arahan dan melaksanakan jenis cincang hibrid baharu, contohnya "-format=dynamic='sha1(md5($p).$s)'", dikira pada CPU menggunakan SIMD . Sebagai komponen ungkapan sedemikian, berpuluh-puluh cincang pantas disokong (daripada yang biasa seperti MD5 kepada yang sederhana eksotik seperti Whirlpool), penggabungan subrentetan, pengekodan dan penyahkodan, penukaran huruf besar kecil, rujukan kepada kata laluan, garam, nama pengguna dan pemalar rentetan.
- Penghapusan perbezaan yang tidak diingini daripada hashcat, termasuk sokongan untuk peraturan khusus hashcat sebelum ini (perintah peraturan senarai perkataan), peralihan kepada peranti OpenCL yang menomborkan daripada 1, penggunaan lalai bagi panjang kata laluan yang sama (biasanya panjang 7) untuk ujian prestasi.
- Mod baharu untuk menjana kata laluan yang boleh disahkan (mod retak), termasuk PRINCE daripada hashcat (membentuk "frasa" dengan menggabungkan beberapa perkataan dalam susunan jumlah panjang yang bertambah), subset (memunculkan kata laluan dengan bilangan aksara berbeza yang tidak mencukupi, walaupun aksara ini datang daripada set besar kemungkinan) dan luaran hibrid (membolehkan mod luaran, diterangkan dalam fail konfigurasi dalam bahasa seperti C, untuk menjana banyak kata laluan yang boleh disahkan berdasarkan setiap "perkataan" asas yang diterima daripada mod lain). Selain itu, beberapa mod luaran pratakrif baharu.
- Ciri tambahan untuk menggunakan beberapa mod secara serentak (satu di atas yang lain - menyusun), serta untuk menggunakan set peraturan (menyusun peraturan senarai perkataan).
- Penambahbaikan pada mod topeng (regangan topeng secara beransur-ansur dalam julat panjang tertentu, penggunaan topeng pada sisi peranti OpenCL atau papan FPGA) dan retak tunggal (tingkah laku munasabah pada peranti yang mengira sejumlah besar cincang secara selari , yang sebelum ini tidak terdapat kata laluan yang boleh disahkan yang mencukupi dalam mod ini, dan juga sekatan ke atas penggunaan memori).
- Banyak penambahbaikan untuk menyokong Unicode dan pengekodan lain dalam pelbagai subsistem.
- Banyak penambahbaikan kepada program *2john (yang menukar fail daripada format yang berbeza untuk
gunakan dengan john), terutamanya wpapcap2john (mengendalikan trafik WiFi). - Terdapat banyak pilihan baris arahan baharu, tetapan dalam john.conf, konfigurasikan pilihan skrip dan ciri baharu yang sepadan, tidak semuanya disebut di sini.
- Meningkatkan kualiti kod terima kasih kepada sokongan terbina dalam untuk binaan nyahpepijat dengan AddressSanitizer (sebelum ini) dan UndefinedBehaviorSanitizer (ditambah), menambah format fuzzer terbina dalam (sebagai sebahagian daripada GSoC 2015), menggunakan penyepaduan berterusan (dibina untuk berdozen sistem pengendalian dan pengkompil gabungan dan mengujinya untuk sokongan yang betul untuk semua format).
Sumber: opennet.ru