    {"id":41,"date":"2012-10-18T17:51:45","date_gmt":"2012-10-18T15:51:45","guid":{"rendered":"http:\/\/www2.emiwa.pl\/?p=41"},"modified":"2025-06-04T09:44:53","modified_gmt":"2025-06-04T07:44:53","slug":"linux-skrypty-generator-hasel-jednorazowych","status":"publish","type":"post","link":"https:\/\/www.emiwa.pl\/?p=41","title":{"rendered":"Linux skrypty &#8211; Generator hase\u0142 jednorazowych"},"content":{"rendered":"<p><!--more-->Niedawno w ramach projektu dla firmy musia\u0142em si\u0119 zmierzy\u0107 z tematem nisko bud\u017cetowego Hotspota. Hotspot mia\u0142 pozwala\u0107 na dost\u0119p czasowy ( np 1 godzina) klientom firmy. Aby maksymalnie upro\u015bci\u0107 dost\u0119p autoryzacja zosta\u0142a ograniczona do pinu kt\u00f3ry jest wa\u017cny\u00a0 1 godzin\u0119 od momentu jego pierwszego u\u017cycia. Maj\u0105c wydrukowane kartoniki z takimi pinami wystarczy go wr\u0119czy\u0107 wybranym osob\u0105. Pro\u015bciej ju\u017c chyba nie mo\u017cna. By\u0142 tylko jeden problem, kt\u00f3rym by\u0142o generowanie unikatowych pin\u00f3w. Za\u0142o\u017cy\u0142em na pocz\u0105tek, \u017ce pin b\u0119dzie si\u0119 sk\u0142ada\u0142 z 6 znak\u00f3w i powsta\u0142 taki oto skrypcik:<\/p>\n<div>\n<div>\n<blockquote>\n<pre>#!\/bin\/sh\r\n\r\nSIZE=6\u00a0\u00a0 # has\u0142o\/kod bedzie si\u0119 sk\u0142ada\u0142 z $SIZE znak\u00f3w\r\nILOSC=50 # generujemy $ILOSC hase\u0142\r\n&lt; \/dev\/urandom tr -cd '[:alnum:]' | fold -w $SIZE | head -n $ILOSC<\/pre>\n<\/blockquote>\n<\/div>\n<div>Zmienn\u0105 SIZE regulujemy z ilu znak\u00f3w ma si\u0119 sk\u0142ada\u0107 pojedynczy pin\/kod a zmienna\u00a0 ILOSC odpowiada na to ile hase\u0142 w jednym uruchomieniu skryptu zostanie wygenerowane.<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[19,61],"class_list":["post-41","post","type-post","status-publish","format-standard","hentry","category-newbie","tag-linux","tag-skrypty"],"_links":{"self":[{"href":"https:\/\/www.emiwa.pl\/index.php?rest_route=\/wp\/v2\/posts\/41","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.emiwa.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.emiwa.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.emiwa.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.emiwa.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=41"}],"version-history":[{"count":2,"href":"https:\/\/www.emiwa.pl\/index.php?rest_route=\/wp\/v2\/posts\/41\/revisions"}],"predecessor-version":[{"id":105,"href":"https:\/\/www.emiwa.pl\/index.php?rest_route=\/wp\/v2\/posts\/41\/revisions\/105"}],"wp:attachment":[{"href":"https:\/\/www.emiwa.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=41"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.emiwa.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.emiwa.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}