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…

9 komentarzy | ogólne programowanietrackback


無料アクセスカウンターofuda.cc「全世界カウント計画」