Archive for the ‘PHP’ Category

Kryptografia wymienialna   Leave a comment

Prawdziwe wezwanie dla aplikacji posługujących się metodami kryptograficznymi następuje w przypadku gdy zachodzi potrzeba wymienialności danych między różnymi platformami aplikacyjnymi. Jasne są zasady:

  1. Należy przyjąć najmniejszy wspólny podzielnik dla wszystkich platform (bibliotekę zaimplementowaną we wszystkich środowiskach), może to być np. openssl, BC lub Jascrypt (tylko dla Java, nie ma odpowiednika w .NET).
  2. Niektóre biblioteki (BC) można wykorzystać na dwa sposoby, jako rozszerzenie możliwości danej platformy (jak to mam miejsce w przypadku Java JCE) lub potraktować niezależnie jako źródło algorytmów kryptograficznych np. takich, których jeszcze nie ma w implementacji danej platformy np. Blowfish lub bardziej egzotycznych.

Najgorzej się tutaj mają języki skryptowe jak Python lub PHP, tutaj nie ma żadnego standardu biblioteki kryptograficznej i posługuje się zewnętrznymi implementacjami kryptografii. PHP ma dwie biblioteki mcrypt (dobrze udokumentowana z wieloma przykładami) i openssl (źle udokumentowana).

Świetny artykuł na temat uzupełniania danych do pełnego bloku – http://www.di-mgt.com.au/cryptopad.html (po to to i jak działa). Tak w ogóle na serwisie www.di-mgt.com.au jest wiele innych ciekawych artykułów:

  • Praca z alfabetem narodowym – należy pamiętać że kryptografia działa na bajtach a nie znakach oraz MS przyjął kodowanie UTF-8 (dokładnie mówiąc UTF-16LE, zresztą jedynie słuszna decyzja). Konsekwencją tego jest wymóg przekształcenia danych typu String do tablicy bitów (Array of Bytes). Przy okazji wyjaśniło się dlaczego w przypadku podpisu cyfrowego przy pomocy klucza publicznego (digital signature with public key) stosuje się nazwy dwuczłonowe np. SHAwithRSA – jest to bowiem proces dwuetapowy, najpierw jest liczony hash za pomocą algorytmu symetrycznego a potem szyfrowanie kluczem publicznym korzystając.
  • UTF-8 ma wiele wariantów np. UTF-16LE (little endian), UTF-16BE (big endian), jaki to kod w pliku wyznacza jego pierwszy bajt tzw. BOM (byte order mark): UTF-8 ma ‘EFBBBF’, UTF16LE – ‘FFFE’.
  • Należy pamiętać, że wynikowy kod nie przechowywać w polach znakowych ale w binarnych polach blobowych bądź opakować je bezpiecznie przy pomocy base64 (radix64 w PGP) i zapamiętać w polu znakowym (kosztem nieznacznego wydłużenia danych).
  • Podstawowe pojęcie o kluczach w kryptografii 
  • Bardzo dogłębnie wyjaśnienie  kodowania UTF-8. Bazuje ono na UCS – uniwersalnej stronie kodowej. W UTF-8 każdy znak ma zmienną długość, o tym decyduje najstarszy bit w pierwszym bajcie (gdy ma ‘0xxxxxxx’ to oznacza, że jest to “zwykły” znak ASCII, a gdy ‘1’ to oznacza wielobajtowy znak i tak ‘11xxxxxx’ oznacza  że znak zajmuje 2 bajty a ‘111xxxxx’ że trzy bajty). ten pierwszy baj zwany jest też jako bajt wiodący (lead-byte). Reszta bajtów to bajty ogonowe (trail) i mają zawsze sygnaturę ‘10xxxxxx’ .
  • Skrośna platforma kryptograficzna – polega na wykorzystaniu symetrycznego kodowanie blokowego (symmetric block cipher) i korzysta się z jednego z zalecanych algorytmów DES, Blowfish lub EAS. One z kolei mają tryby pracy (ECB, CBC,…). Jedynie ECB nie wymaga wektora inicjującego (szyfruje jedynie w obrębie pojedynczego bloku)

Linki – http://www.di-mgt.com.au/crypto.html#links

Cryptography FAQ
Ten parts of the sci.crypt FAQ. Read these before you ask any questions.

Bruce Schneier’s page
By the author of Applied Crytography: Protocols, Algorithms and Source Code in C, John Wiley, 1996, and the Blowfish Encryption Algorithm. Lots of info, papers, newsletters, a very comprehensive links page, and variants of the Blowfish source code.

Peter Gutmann’s page
Up-to-date information on cryptography and PKI matters from a leading expert in the field with a good sense of humour. Check out his DumpASN1 C program to read BER-encoded ASN.1 files, his style guide to writing X.509 certificates, and his rant on the M*soft inspired PFX/PKCS-12 standard.

Neal R. Wagner
The Laws of Cryptography: a series of well-explained and informative pages on cryptography and coding and information theory by Neal Wagner, a professor at University of Texas at San Antonio. Includes a lot of Java code.

Snake Oil Warning Signs
Avoiding bogus encryption products: Snake Oil FAQ. „Encryption Software to Avoid” by Matt Curtin.

The Six Dumbest Ideas in Computer Security
Marcus Ranum’s introduction to the six dumbest ideas in computer security.

Ross Anderson
An excellent and well-written site on cryptography issues by the Reader in Security Engineering at the University Of Cambridge. Check out his book Security Engineering: A Guide to Building Dependable Distributed Systems. The entire first edition (2001) and some chapters from the second edition (2008) are now available on his site. One of the interesting facts from the second edition is that the most commonly-used password has changed in recent years from password to password1.

Digital Timestamping Service
Matthew Richardson’s PGP Digital Timestamping Service will timestamp an email sent to it so you can prove your document existed at a given time. Includes a proof of posting service. Operates in clear, header, text, pgp and binary modes. Dates are old, but it still works.

RSA Lab’s Public Key Cryptography Standards
RSA Labs specifications on public key cryptography (the PKCS standards) and other useful stuff.

SUNET crypto archive
A downloadable index of cryptography tools on the SUNET archive, especially for privacy of electronic mail.

Worst hotel in the world

Posted 6 września 2011 by marekwmsdn in C#, Cryptography, Java, PHP

Ciekawostki   Leave a comment

Nauka HTML5 na poważnie:

  1. http://developers.whatwg.org/
  2. http://www.w3.org/TR/html5-author/

Witryna ze wzorcem do budowy stron HTML – http://html5boilerplate.com/docs/The-style/

Źródło do ciekawych podcast-ów – http://www.devcurry.com/2011/08/free-podcast-for-developers.html

Wszechstronna strona Yahoo dla deweloperów – http://developer.yahoo.com/javascript/

Czy Android to jeszcze Linux czy nie? Opinia Tornvaldsa – http://www.zdnet.com/blog/open-source/linus-torvalds-on-android-the-linux-fork/9426?tag=nl.e019

DOMPDF – kolejny konwerter HTML->PDF dla PHP. Program do podłączenia się do usługi SkyDrive i traktowania jej jako dysku sieciowego – http://skydrivesimpleviewer.codeplex.com/releases/view/39728. W nowszych wersjach przeglądarek Firefox jest wbudowany tzw. ScratchPad – edytor i wykonawca kodu w JS. Dla dzieci – gra – http://www.ageofempiresonline.com/. Dziura budżetowa fundacji Mozilla po zrezygnowaniu przez Google wydawania paska ToolBar dla najnowszych wersji FF – początek końca? Do Androida – darmowa wersja programu antywirusowego Norton-a, blokuje skradziony telefon poprzez wysłanie na niego SMS-a. Gra online na facebook-u na stronie WCG Poland. Ciekawy serwis o IT – http://www.spidersweb.pl/. Warto obserwować: blog o Firefox. Inny link, taki MSDN o przeglądarce Firefox – nazywa się nawet podobnie MDN. Firefox dla Androida za darmo z Android Market.  Wszystko na temat Android-a znajdziesz po polsku tu nosi swojską nazwę eAndroidowo.pl. Za rok HP zniknie z rynku produktów konsumenckich komputerów PC, tabletów i innych urządzeń przenośnych (oprócz DRUKAREK) i postawi na serwery i aplikacji nimi zarządzające. Dygresja: kiedyś można było oferować swoje produkty wszystkim tj. konsumentom indywidualnym i korporacyjnym. Teraz gdy ci pierwsi są nieprzewidywalni, rzucili się na przenośne cacka, jedyna ostoja stabilności to korporacje ze sztywnymi standardami.

Posted 19 sierpnia 2011 by marekwmsdn in Android, Firefox, html5, JavaScript, open-source, PDF, PHP

Podstawy PHP/JS–ważne!   Leave a comment

Posted 28 lipca 2011 by marekwmsdn in JavaScript, PHP

Dla mnie bomba   Leave a comment

Super portal na temat deweloperski (niestety po rosyjsku, ale jeszcze trochę pamiętam) – Блоги / Хабрахабр – tam jest artykuł o obiektach 2D i ich interakcji – Обработка 2D столкновений с использованием LibCanvas / Canvas / Хабрахабр, o knockout też tam jest –Knockout, практический опыт использования / JavaScript / Хабрахабр i o interakcji Java/JS – Получаем данные из Javascript через функции Java / JavaScript / Хабрахабр

Historia JS oczami jego twórcy – http://brendaneich.com/2008/04/popularity/

Tutorial do knockout.js – http://blog.stevensanderson.com/2010/07/05/introducing-knockout-a-ui-library-for-javascript/

O co walczy Mozilla? Nie o wejscie na rynek aplikacji w przeglądarce (B2G) – już Google tam wtargnął poprzez OS Chrome i Androida i głosi ewangelię “browser based OS”– ale o rację bytu. Dzieje się tak dlatego, że Google przestaje wspierać Firefoxa. Na ten temat jest doskonały artykuł w serwisie betanews “Mozilla boots to promises with browser OS proposal”, chociaż z lekkim skrzywieniem autora w kierunku wszchmożności i nieomylności firmy Google (autorem jak nietrudno zgadnąć jest Wilcox). Tak nawiasem mówiąc Apple ma inny punkt widzenia – aplikacje na stosie OS.

Kurs C# – http://www.vijaymukhi.com/documents/books/csbasics/chap3.htm

Mój ulubiony autor na temat WCF:

  1. http://kashyapas.com/dotnet/performing-crud-on-odata-using-curl/
  2. http://kashyapas.com/dotnet/self-hosted-wcf-rest-service-template-for-vc-express/ (ma też wersję na WWD)

XADES w PHP? To możliwe – http://es.sourceforge.jp/projects/sfnet_xades-php/

Rewelacja jQuery odkrywa swoją mapę drogową rozwoju – http://jquerymobile.com/gbs/ oraz tworzenia aplikacji mobilnych przy pomocy Webmatrix i jQ Mobile – http://geekswithblogs.net/mbridge/archive/2011/07/25/webmatrix-hosting–how-to-build-mobile-apps-with-webmatrix.aspx

Posted 26 lipca 2011 by marekwmsdn in C#, JavaScript, jQuery, Mobile, PHP, XADES

Linki w piątek   Leave a comment

Dużo się dzieje na stronach webhosting.pl (czasami ich tłumaczenia są trochę nieudolne, jakby przy pomocy translatorów):

  1. Świetny artykuł na temat spojrzenia na JS jako języka niskiego poziomu (w sferze przeglądarki rzeczywiście nie można już niżej zejść), tam też jest lista projektów związanych z JS np. translator CoffeScript /Pythona/C#Perla do JS. Jest to odpowiedź na artykuł Hanslemana zamieszczony tu.
  2. Rozszerzenia na temat deweloperki webowej w VS2010 – na podstawie artykułu z webhosting.
  3. Jak wystartować z nauka HTML5?
  4. Jak wynagradzać artystów (programistów)?
  5. Edytor online dla PHP

Bardzo ciekawy artykuł o odwrotnym Ajax – z IBM DW

Posted 22 lipca 2011 by marekwmsdn in .NET, JavaScript, MS, PHP, Programowanie

Śmieciowisko (ale pożyteczne)   Leave a comment

Czasami zachodzi potrzeba podglądnięcia zapamiętanych haseł w przeglądarkach – pomóc w tym może taki programik – http://www.nirsoft.net/utils/web_browser_password.html. Jest tam wiele innych ciekawych programików.

Po co jest  modernizr – aby załatać niedociągnięcia przeglądarki IE. Podobnie działa selectivizr – wprowadza HTML5 i niweluje różnice między przeglądarkami w odniesieniu do realizacji CSS3. Inny autor zajmujący się niwelowaniem różnic m. przeglądarkami do Dean Edwards i jego strona – jego produkt do IE7 (dodatek do IE 6-). Istnieją odmiany  IE8 i IE9. Jak się posługiwać tą biblioteką? – jest tu krótki kurs. Google code też ma podobną wtyczkę typu shiv – http://code.google.com/p/html5shiv/. Tam też są tutoriale.

Oto 10 najbardziej pożytecznych aplikacji webowych dla biznesu – z serwisu rodzimego wspierającego selectivizr – enavu: Alexa, Pandora, WordPress, Freedcamp, Google (docs, reader, mail). Tamże są fajne lekcje o Ajax i jQuery – http://web.enavu.com/tutorials/jquery-and-ajax-the-simple-designer-way/

Hudzilla ze swoimi kursami C# na platformie Mono (serwer tuxradar.com/hca). Do języka Python jest cała gałęź, podobnie zresztą jak dla PHP. Tamże gra w pythonie z biblioteka Gloss –  na bazie PyGame  (http://www.tuxradar.com/content/make-python-game-minutes-gloss). Piotrek może zaczerpnąć z PyGame pewne idee co do realizacji gier.

Super prościutkie kursiki o PHP na Zend i tu a to wszystko i wiele więcej na readwriteweb. Jest także podręcznik do PHP dla zaawansowanych (na stronie Bruce Perens hostowanej przez InformIT). Jest też video o node.js. Nauka języka Java – proszę bardzo (seria TIJ) lub tu (http://www.greenteapress.com/thinkapjava/thinkapjava.pdf). Kurs programowania na Princeton oraz super-super kurs z MIT w ramach programu open OCW

Ciekawe prezentacje – http://www.windowspresentationfoundation.com/?p=861

Nauka C# – wizualizacja zapytania LINQ – Hsia, dostęp do słowników w c# – msdn, przejrzyj blog – RStrahl, na temat wątków w SL – http://www.silverlightshow.net/items/Threading-recipes-the-many-ways-of-spawning-background-works-in-Silverlight.aspx

Wszystko na temat OData – http://paper.li/kashyapa/1299034062, WebMatrix jest ciągle na fali, jest nawet do niego książka (darmowe – http://www.zillr.org/books/c-c-sharp). Co powinien wiedzieć programista w C# – http://www.techrepublic.com/blog/programming-and-development/three-things-c-only-developers-might-not-know/4182?tag=mantle_skin;content. Nauka IronPythona – jak skorzystać z bibliotek CLR. Przegląd tematyki deweloperskiej na TechRepublic. Little wonder – http://www.blackrabbitcoder.net/BlackRabbitCoder/archive/2011/04/28/c.net-little-wonders-elementat-and-last.aspx. DotnetKicks – warto obserwować. Materiały z MIX-a i tu i tu. Przykłady klas w C#. WCF jest tu i tu oraz przykłady z MS, pierwszy serwis WCF, REST z podpisem cyfrowym. WCF z eggheadcafe – http://www.eggheadcafe.com/tutorials/aspnet/b480ba4e-b59c-43d4-ac4b-2990ca19daec/restful-aspnet-wcf–jquery–json-service-with-get-post-put-and-delete.aspx. Inny wstęp do WCF z MSDN. Darmowa kontrolka datagrid w C# z codeproject, tworzenie w datagrid kontrolek typu ‘checkbox’. Najważniejsi dla MS – programiści – http://www.zdnet.com/blog/microsoft/microsofts-plan-to-increase-its-focus-on-developers-the-full-internal-memo/9327?tag=nl.e539. Uruchamianie MS Worda poprzez C#. Programming news z TechRep. Reakcja na restart – odzyskanie danych w aplikacji w C#. Ciekawy przykład opisu C# – http://www.servicestack.net/ServiceStack.Hello/. Szybki JSON dla .NET – http://www.hanselman.com/blog/NuGetPackageOfTheWeek4DeserializingJSONWithJsonNET.aspx

Co czyni przeglądarki unikalnymi – http://www.networkworld.com/news/2011/050211-13-features-that-make-each.html?page=4. Patrz na Maxthona – nowa jakość.

WebGL w FF zbyt niebezpieczne? Może

Wystartuj z nauką CSS – developerworks. Do edycji grafiki, bogaty Flash – fatpaint.

Co z tym CR – http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/18490

Google zrobił dla GWT wizualnego RAD-a – http://www.selikoff.net/2011/02/24/google-releases-gwt-designer/

Podstawy JS z SitePoint – http://blogs.sitepoint.com/javascript-this-event-handlers/

PageSpeed i YSlow – do testowania wydajności aplikacji webowych

Lokalne pamięć dla przeglądarki –po co to jest – http://webdesign.about.com/od/html5/f/what-is-local-storage.htm?nl=1

Po co nam te interfejsy?

IE9 nie działa na MS Vista – dlaczego? Testowanie IE8 przy pomocy F11 – http://channel9.msdn.com/Events/MIX/MIX11/HTM18. Dlaczego jest tak dużo języków programowania?

Przykład w C# dostępu  do bazy DBF z VFPRO w aplikacji konsolowej

Gry – “BounceBall – XNA Farseer Magic” – codeproject

Dla programisty   Leave a comment

Wtyczka do jQ nazywa się jQuery.dForm pozwala na dynamiczne generowanie formularzy – http://neyeon.com/p/jquery.dform/doc/files2/readme-txt.html

Testowanie stron w PHP i nie tylko – http://webhosting.pl/6.narzedzi.ktore.poprawiaja.wydajnosc.programisty.PHP.Musisz.je.sprawdzic?page=5 z artykułu o narzędzich dla PHP na webhosting.pl

Popularne biblioteki JS są teraz hostowane na CDN – wg. webhosting, strona z hostingiem skryptów JS – http://www.cdnjs.com/#/page/search. Hostingi CDN komercyjne to: google oraz ms. W odróżnieniu od nich ta strona serwuje inne biblioteki: sizzler lub modernizer lub selectizer.

Sencha ma nie tylko Ext JS oraz Ext GWT ale również rozwiązania dla platform mobilnych oraz przejęła bibliotekę Raphael.js + rozszerzyła wtyczkę do FireBuga – Illumination – niestety płatna. Na podstawie artykułu z webhosting.pl

PHP ma szablony SMARTY ale kto z nich korzysta –webhosting.pl. Tamże generatory formularzy – http://webhosting.pl/5.frameworkow.do.budowy.piekniejszych.formularzy. Temat odwrotnego Ajaxa czyli push z serwera znowu się odradza w postaci Xajax-a.

Wycisnąć z Chroma jak najwięcej – http://webhosting.pl/Narzedzia.dla.programistow.Chromea.powrot.do.podstaw.za.pomoca.WebKita

Ładowacz skrytów JS – stackJS – tamże o JavaScriptMVC – warto poznać

Badaj dalej – http://www.blackwasp.co.uk/ILMergeSigned.aspx

Ciekawa książka – http://helion.pl/ksiazki/visual-studio-2010-dla-programistow-c-jacek-matulewski-i-inni,vs21cn.htm

Pakiety kryptograficzne w Pythonie – http://code.activestate.com/pypm/search:cryptography/ lub jeden z nich bcryptor – moża wykorzystać do robienia upoważnień

Laboratorium Mozilli ma ciekawe projekty – http://mozillalabs.com/gaming/2011/03/16/game-on-marble-run-presentation/

Wtyczka do tworzenia formularzy – http://thecodemine.org/#_demoForm=first – może się spodobać gdy chcemy mieć wiele powiązanych ze sobą formularzy. Inna cielawostka to interface wstążka jak w Windows – http://www.how-to-asp.net/flyout-ribbon-jquery-css3.aspx z webhostingu. Ciekawy przykład jQ:

<!DOCTYPE html PUBLIC „-//W3C//DTD XHTML 1.0 Transitional//EN” „http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
    <title>jQuery from Microsoft AJAX CDN</title>
    <script src=”http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.js” type=”text/javascript”></script>
 
    <script type=”text/javascript”>
   
    $( domReady );
   
    function domReady() {
        $(‚#btn’).click( showMessage );
    }
   
    function showMessage() {
        $(‚#message’).fadeIn(‚slow’);
    }
   
    </script>
</head>
<body>
 
<button id=”btn”>Show Message</button>
 
<div id=”message” style=”display:none”>
 
    <h1>Hello from jQuery!</h1>
 
</div>
 
</body>
</html>

Posted 14 Maj 2011 by marekwmsdn in JavaScript, jQuery, PHP, Programowanie, Python

Coś z PHP…   Leave a comment

Opis parametrów, które się ustawia przy wywołać  CURL w PHP (manual).  Portal daniweb – manipulacje z nagłówkami poprzez ustawienie parametru ‘location’ w nagłówku ‘header’. Tak nawiasem mówiąc portal daniweb jest interesujący podobnie jak stackoverflow.

Posted 27 kwietnia 2011 by marekwmsdn in PHP

Obsługa HTTP/HTTPS w PHP   Leave a comment

Traktowanie serwera PHP w nietypowy sposób do obsługi komunikacji z innym serwerem. Jak to zrobić? Od razu nasuwają się następujące rozwiązania:

  1. skorzystanie z cURL – dokumentacja
  2. wykorzystanie wrappera do HTTP – świetny blog – http://wezfurlong.org/blog/2006/nov/http-post-from-php-without-curl/ – tam sie dowiedziałem, że dopiero ustawienie ‘ignore_errors’ pozwala na dostanie się do ładunku zwróconego w przypadku błędów po drugiej stronie. Przy okazji można wykorzystać tu http://pl.php.net/http_build_query
  3. zaprzęgnięcie do tego usług webowych –WSO2

Posted 11 kwietnia 2011 by marekwmsdn in HTTP, PHP, WS

Pracowita niedziela   Leave a comment

Ciekawostki z życia:

  1. Coś dla ciała – http://tempehservice.com/?pl_badz-wege,27, Sklep w Katowicach
  2. Interesujące wnioski z analizy – http://httparchive.org/interesting.php – na podstawie webhosting.pl – jQury dominujący framework wśród JS
  3. Niezłe rzeczy można z tym zrobić – http://www.autohotkey.com/docs/Tutorial.htm
  4. Proste przykłady z C# – http://www.jonasjohn.de/snippets/csharp/xmlserializer-example.htm
  5. Silne wsparcie protokołu HTTP i nie tylko – http://hc.apache.org/httpcomponents-client-ga/tutorial/html/
  6. Wspaniały odnośnik do przykładów z różnych dziedzin informatyki i języków programowania – http://www.java2s.com/, szczególnie są ciekawe wątki – http://www.java2s.com/Code/CSharp/Thread/CatalogThread.htm i inne strony – http://www.javakb.com/Default.aspx
  7. Pobieranie danych poprzez PHP – http://wezfurlong.org/blog/2006/nov/http-post-from-php-without-curl/

Posted 11 kwietnia 2011 by marekwmsdn in C#, Java, PHP