mwgamera has no life


javascript sha256

Wpis na 0. poziomie, wysłany 2008-02-16 23:43:47

Nie wiem czy kiedykolwiek użyję do tego co chciałem na początku, ale zaimplementowałem secure hash algorithm 2 — konkretnie SHA256 w JavaScripcie. Wbrew pozorom może to być użyteczne (na przykład login nie wymagający https przy użyciu hmac albo czegoś podobnego), a z działających implementacji w JavaScripcie dotychczas spotkałem tylko SHA1.

Swoją drogą nie sądziłem że może to być takie zabawne, tyle ciekawych błędów można popełnić dzięki typowej dla wielu języków skryptowych idiotycznej dynamicznej zmianie typu jak się przekroczy zakres (zamiast obcięcia jak normalnie). Dzięki temu na przykład dodawanie modulo 232 nie jest tak proste jak (a+b)&0xFFFF (choć w większości wypadków to i tak by działało)… Jakby w dzisiejszych czasach nie można było mieć 64 bitowego typu całkowitego — jakby był to pewnie większą rozrywkę sprawiłoby mi SHA512 albo w ogóle coś bardziej mrocznego jak whirlpool.

Implementacja z pewnością nie jest optymalna (tak to zwykle bywa jak się pisze bezpośrednio „z definicji”), ale działa w rozsądnych granicach dla niezbyt długiego wejścia (tak ze 4–5 bloków).
W każdym razie, oto ona: sha256.js, a tutaj demo.

BTW1, nie wiem co zrobić z tym joggerem, żal mi biednego serwera który musi trzymać takie dawno nie aktualizowane pozostałości jak to…

BTW2, był sobie JiMP zaliczony na podstawie projektu. Projektem był prosty kalkulator (przynajmniej w końcu nauczyłem się jak się pisze w miarę porządny parser — wbrew pozorom wiedza wyniesiona z TPI okazała się przydatna na tą okoliczność ;) — a typa z którym miałem pisać paru „sztuczek” w C). Co mnie drażni to fakt, że wiem o dwóch bugach w nim, które wiem jak poprawić, ale mi się nie chce bo to już nikomu więcej nie będzie potrzebne… Czyżby własne lenistwo zaczynało mi przeszkadzać? :o
Ekshibicjonistyczna część natury każe mi podać linki do kodu (wersja okrojona z wygodnego readline'a specjalnie dla „windowsiarzy” też jest)

BTW3, Hooray, wszystko zaliczone, żadnych głupich warunków i cały tydzień ferii…


Komentarze do notki javascript sha256

  1. Michał Górny (1088562)
    2008-02-17 01:48:49

    Jakby Ci się nudziło i znalazłbyś odwagę na Whirlpoola, to chętnie skorzystam ( ;.

  2. 2008-02-17 02:14:29

    To będzie bolało… (o ile będzie mi się nudziło)
    Do czego Ci to?

  3. Michał Górny (1088637)
    2008-02-17 10:19:04

    mwgamera: Lubię hashować hasła absurdalnie mocnymi algorytmami ( ;.

  4. 2008-02-17 10:54:06

    Potrafię to zrozumieć, ale… w PGP na przykład dalej używa się SHA1 i jest dobrze. Mimo, że jacyś Chińczycy znaleźli algorytm na znalezienie kolizji w czasie krótszym niż metodą brute-foce. Niewiele to zmienia jeśli chodzi o praktyczne użycie.
    Jak na JavaScript, SHA256 powinno wystarczyć każdemu. Dorzucisz do hasła jakiś salt i masz (statystycznie) spokój na wielokrotność czasu życia…

    Choć… fajnie byłoby mieć whirlpoola…

  5. Michał Górny (1088673)
    2008-02-17 11:26:37

    mwgamera: W GPG możesz wybrać algorytm hashowania.

  6. MasterLeming (1123906)
    2008-04-01 11:58:15

    Jak poprawisz te bugi to chętnie od ciebie wezmę ten twój kalkulatorek… w celach „szkoleniowych”

    hehe

    pozdrawiam

  7. 2008-04-01 21:23:11

    Nie poprawię, mogę najwyżej powiedzieć gdzie są (przynajmniej te o których wiem)… o ile oczywiście „cele szkoleniowe” nie sprowadzają się to rżnięcia z mojego kodu.

  8. Anonim (1245251)
    2008-08-26 15:38:06

    http://www.webtoolkit.info/javascript-sha256.html

  9. 2008-08-27 04:52:21

    Tak, tak, wiem. Jest tego trochę. Ale jak pisałem to nie wiedziałem, a poza tym (1) spójrz na datę — to było dobre na odstresowanie się po sesji… (2) tę własną wersję mogę swobodnie używać i poprawiać, a akurat na tamtej stronie nie widzę żadnej informacji

Dodaj komentarz:

Musisz się zalogować, żeby dodać komentarz.