{"id":1661,"date":"2021-06-07T14:13:43","date_gmt":"2021-06-07T12:13:43","guid":{"rendered":"https:\/\/moijari.com\/?p=1661"},"modified":"2021-06-08T13:55:30","modified_gmt":"2021-06-08T11:55:30","slug":"fort-hashaamalla-satunnaisuutta-newressu-komennon-tulosteesta","status":"publish","type":"post","link":"https:\/\/moijari.com\/?p=1661","title":{"rendered":"Fort: Hashaamalla satunnaisuutta newressu komennon tulosteesta"},"content":{"rendered":"\n<p>Parissa edellisess\u00e4 postissa olen esitellyt uuden ressun ja siihen liittyv\u00e4n lelusovelluksen newressu. T\u00e4ss\u00e4 postissa k\u00e4ytet\u00e4\u00e4n newressun satunnaisuutta fort:in avainnukseen.<\/p>\n\n\n\n<p>Ensimm\u00e4isell\u00e4 rutiinilla ajetaan komento (parametreineen), ja hashataan sen tulos: funktio popen suorittaa komennon ja palauttaa osoitteen (fp1) sen tulosteeseen. Komennon tulostetta luetaan fread:illa. Alussa on hashattavaan materiaaliin lis\u00e4tty cvar, jolla voidaan varmistaa ett\u00e4 &#8220;tulostetta s\u00e4\u00e4t\u00e4m\u00e4ll\u00e4&#8221; ei voida saada tietty\u00e4 hash-koodia. Oletuksena cvar hash:\u00e4\u00e4minen on kommenteissa.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#define FORT_USE_NEWRESSU_COMMAND 2\n\n#ifdef FORT_USE_NEWRESSU_COMMAND\n\nvoid fort_hash_command(unsigned char *command, unsigned char *hash)\n{\n  int c,length;\n  FILE *fp1;\n  unsigned char buffer&#91;64];\n\n  HashCtx hashctx;\n\n  length=0;\n  if((fp1=popen(command, \"r\"))!=NULL) {\n    HashInit(&amp;hashctx);\n\n    \/\/HashUpdate(&amp;hashctx, (unsigned char *)&amp;cvar,sizeof(cvar));\n    \/\/inccvar();\n\n    fprintf(stdout,\"fort_hash_command: %s\",command);\n    fflush(stdout);\n\n    while((c=fread(buffer,1,sizeof(buffer),fp1))&gt;0) {\n      \/\/fwrite(buffer,1,c,stdout);\n      HashUpdate(&amp;hashctx, buffer, c);\n      length+=c;\n    }\n    pclose(fp1);\n\n    fprintf(stdout,\", %d bytes read\",length);\n\n    HashFinal(hash, &amp;hashctx);\n\n    fprintf(stdout,\", sha256: \");\n    for(int c = 0;c &lt; HashLen; c++) {\n      fprintf(stdout,\"%02x\", hash&#91;c]);\n    }\n\n    fprintf(stdout,\"\\n\");\n    fflush(stdout);\n  }\n}<\/code><\/pre>\n\n\n\n<p>Seuraavassa fort:initiss\u00e4 oleva funktiokutsu (fort_hash_command) aiemman web sivusta satunnaisuutta poimivan toiminnon j\u00e4lkeen: Newressu komennossa -2:lla m\u00e4\u00e4ritell\u00e4\u00e4n haluttu merkist\u00f6 ( t\u00e4ss\u00e4 sama kun web satunnaisbittisivustoissani (esimerkiksi https:\/\/moijari.com:5006) on), -s16 kertoo &#8220;sanan&#8221; koon (t\u00e4ss\u00e4 16 merkki\u00e4), -w8 tulostetaan 8 sanaa riville, -l640 tulostetaan 640 rivi\u00e4, &#8211;space tulostetaan v\u00e4lily\u00f6nnit sanojen v\u00e4liin, &#8211;lineno ei tulosteta rivinumeroita. Tuloste on s\u00e4\u00e4detty saman oloiseksi noiden muiden satunnaislukusivujeni kanssa.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#ifdef FORT_USE_MOIJARICOM5005\n  fort_hash_https_page(\"moijari.com\", \"5005\", \"\/\", hash);\n  fort_reseed(sizeof(hash), hash);\n  dump_pools(\"Rand. from moijari.com:5005\");\n#endif\n\n#ifdef FORT_USE_NEWRESSU_COMMAND\n  fort_hash_command(\"\/bin\/newressu -2 -s16 -w8 -l640 --space --lineno\", hash);\n  fort_reseed(sizeof(hash), hash);\n  dump_pools(\"Rand. from newressu\");\n#endif\n<\/code><\/pre>\n\n\n\n<p>Merkkien m\u00e4\u00e4r\u00e4 tulosteessa on tietenkin yliampuva, kuten se on aina n\u00e4iss\u00e4 satunnaissivuissani ollut&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Parissa edellisess\u00e4 postissa olen esitellyt uuden ressun ja siihen liittyv\u00e4n lelusovelluksen newressu. T\u00e4ss\u00e4 postissa k\u00e4ytet\u00e4\u00e4n newressun satunnaisuutta fort:in avainnukseen. Ensimm\u00e4isell\u00e4 rutiinilla ajetaan komento (parametreineen), ja hashataan sen tulos: funktio popen suorittaa komennon ja palauttaa osoitteen (fp1) sen tulosteeseen. Komennon tulostetta luetaan fread:illa. Alussa on hashattavaan materiaaliin lis\u00e4tty cvar, jolla voidaan varmistaa ett\u00e4 &#8220;tulostetta s\u00e4\u00e4t\u00e4m\u00e4ll\u00e4&#8221; ei&hellip; <a class=\"more-link\" href=\"https:\/\/moijari.com\/?p=1661\">Continue reading <span class=\"screen-reader-text\">Fort: Hashaamalla satunnaisuutta newressu komennon tulosteesta<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6,11],"tags":[],"_links":{"self":[{"href":"https:\/\/moijari.com\/index.php?rest_route=\/wp\/v2\/posts\/1661"}],"collection":[{"href":"https:\/\/moijari.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/moijari.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/moijari.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/moijari.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1661"}],"version-history":[{"count":8,"href":"https:\/\/moijari.com\/index.php?rest_route=\/wp\/v2\/posts\/1661\/revisions"}],"predecessor-version":[{"id":1672,"href":"https:\/\/moijari.com\/index.php?rest_route=\/wp\/v2\/posts\/1661\/revisions\/1672"}],"wp:attachment":[{"href":"https:\/\/moijari.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1661"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/moijari.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1661"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/moijari.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1661"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}