Po ~3 miesiącach dodatkowego wysiłku (o którym klient praktycznie nie wiedział) między dostarczaniem ficzerów udało nam się przemycić refaktor. Dzięki temu wczoraj miałem zaszczyt wywalić trochę makaronu \o/
4 files +21 -3701
Projekt nie jest wielki, więc nawet te -3,7k cieszy :)
Nie no Vernon mniej nudzi. Ale są ludzie których prędzej da się słuchać jak Mathias Verraes, Nick Tune. Ale i Tak to wszyscy mają manierę sprzedawania tego jako silver bullet.
#chwalesie
Kto używa KeePassXC (https://keepassxc.org)? Od następnej minor wersji (2.7.0
) będzie on wspierał sprawdzanie wycieku haseł używając mojego projektu, który dziergam w piwnicy :)
!(tl;dr):
Od czasu do czasu pracuję nad pet projektem: okon
(https://github.com/stryku/okon). W skrócie, libka i CLI pozwalający szybko sprawdzić czy nasze hasło kiedyś wyciekło w internetach.
Dokładniej, okon
umie szybko offline sprawdzić czy SHA-1 naszego hasła jest obecne w bazie Have I Been Pwned (https://haveibeenpwned.com/Passwords).
Ostatnio zaproponowałem użycie okonia w projekcie KeePassXC. Była mała dyskusja. Wyszło na to, że nie chcą tego mieć w GUI, ale spoko będzie używanie okon ia z poziomu CLI.
Nie chcę przepisywać tu ściany tekstu. Dla zainteresowanych, więcej info jest na gh:
Issue z propozycją integracji, który stworzyłem: https://github.com/keepassxreboot/keepassxc/issues/5447
PR ze zmianami ogarniającymi okonia z poziomu CLI (nie ja implementowałem): https://github.com/keepassxreboot/keepassxc/pull/5478
Trochę się jaram. Pierwszy raz ktoś tego do czegoś użył ^^
Dało to motywacji, żeby okonia dopracować.
Dzięki wszystkim za miłe słowa!
@siloam: Fakt, zrobiłem skrót myślowy. Założyłem, że jak ktoś jest w temacie, to wie ile ważą pliki z HIBP i jest dla niego oczywiste, że nie zawre hashy w binarce tylko muszą one najpierw zostać obrane. Jak już są pobrane, to Pan Hardkor może urywać kabel od internetu bo nie jest on już potrzebny. Założyłem też, że jak ktoś nie jest w temacie i się zainteresuje, to wejdzie w któryś link i doczyta. Tak jak pisałem, nie chciałem przeklejać tekstu bo wszystko było znajdowalne w podanych linkach.
@kate87: Yep, wiele osób nie bardzo chce słać hash swojego hasła w internet (nawet pierwszych N znaków). Dlatego powstał okon.
@Hrypa: Jak zaczynałem to pisać, to nie miałem jeszcze nazwy. Kolega w pracy wyskoczył z "Stawiam kolkę jak nazwiesz to okoń". Wystarczyło wymyślić rozwinięcie ^^ Mam gdzieś nawet zdjęcie tej coli.
Ale jazda. Dziś odkryłem, że jak masz znak reprezentujący cyfrę, to możesz go zamienić na wartość jaką ta cyfra reprezentuje przez & 0x0f
:)
np.
char c = '4';
char value = c & 0x0f;
assert(value == 4);
Zajarałem się tym na tyle, że drążyłem dalej. Pracowałem akurat nad optymalizacjami w okoniu i myślałem, czy można tego użyć do zamiany tekstowych SHA-1 na ich binarne wartości. Okazało się, że dzięki bitowym operacjom można napisać zamianę hexadecymalnego znaku na jego wartość, bez if/elsów. Dzięki temu, że nie ma branchy, kod jest wydajniejszy \o/
Zakładam, że, jak wszystko na tym świecie, jest to już znane i tylko ja byłem zacofany. Mimo wszystko zajarałem się tym na tyle, że napisałem od razu arta:
http://stryku.pl/poetry/hex_chars_to_binary.html
#okon
No i przyszedł czas na kajanie się, wyjaśnianie co napsułem i jak to powinno być zrobione (przynajmniej tak mi się wydaje).
Chodzi oczywiście o benchmarkowanie okonia.
Gdy wypuściłem okonia na gh i artykuł o nim na swoją stronę, wiele osób wypunktowało, że benchmarki okonia są o kand d**y rozbić. Mieli oczywiście racje. Tym razem starałem się to zrobić dobrze.
Jak ktoś znajdzie jeszcze coś o czym zapomniałem przy benchmarkach, to dawać (:
http://stryku.pl/poetry/waking_up.html
tl;dr
Średni czas szukania hasha w pliku to 3ms (SSD)/13ms (HDD), a nie jak wcześniej mi wychodziło 49μs.
Ostatnio chiałem poszukać swojego hasła w bazie Have I Been Pwned. Potoczyło się to tak, że stworzyłem bibliotekę i CLI do tego. Wyszło całkiem spoko. Napisałem arta o moich perypetiach przy tworzeniu. Pomyślałem, że może ktoś będzie zainteresowany. Teaser: benchmarki szukania hasha różnymi metodami (okoń to ten mój tool):
| | time [μs] | % |
|-----------------:|------------:|------------:|
| okon | 49 | 100 |
| C++ line by line | 135'720'201 | 276'980'002 |
| grep '^hash' | 195'350'000 | 398'673'469 |
| grep | 195'480'000 | 398'938'775 |
Artykuł: http://stryku.pl/poetry/okon.php
Repo: https://github.com/stryku/okon
Po co Ci osobna libka do tego? Nie prościej (i szybciej) byłoby skorzystać z API HIBP? Toraz; dwa - czemu Twój art ma puste mega pasy po bokach? Mamy XXI wiek :)
@yarel: Na HN jeden ziomek mówił, że użył kiedyś Blooma do podobnej rzeczy i mówił, że false positivy bardzo źle wpływały naużywalność. Są oczywiście przypadki, gdzie Bloom byłby lepszy, ale ja chciałem stworzyć narzędzie, które będzie dokładne w 100%
@InterruptedException: Dzięki! Jest tam sporo komentarzy, z których się nauczyłem nowych rzeczy, więc niech komentują ^^
@Anna Lisik Celem libki i CLI jest działanie offline, na ściągniętym pliku. Art ma puste marginesy, bo taki layout ma strona. Nie chcę tracić czasu na zajmowanie się stroną. Wolę pójść na ryby czy coś (:
No siema.
Od jakiegoś czasu pracuję nad deklaratywnymi rozszerzeniami do CMakeSL. Coś tam się udaje, więc postanowiłem zrobić z tego arta.
Łapcie teaser
i oczywiści arta.
Jakby ktoś miał jakieś przemyślenia, to śmiało w komentarzu albo jakimś innym kanałem.
Wow to wygląda na proste w użyciu.Sam dopiero zaczynam z nauką toolsetu cpp a właśnie makefiles i sam cmake wydają mi się cholernie skomplikowane szczególnie jak muszę zbudować wiele zewnętrznych zależności na raz.
Aż tak skomplikowane nie są. Fakt, że trzeba załapać parę konceptów, ale potem już jakoś idzie (:
+1. Znaczące białe znaki to jest jakiś żart. Zarówno w językach programowania, jak i...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Słuchajcie, jest spontaniczna akcja! Jesteśmy w trakcie zjazdu firmowego. Ludzie z p...
Vernon ma u mnie plusy za wbicie na talk Johna de Goes o zio prelude. Myślałem, że DDDowcy takie tematy olewają.