{"provider_name":"Hatena Blog","blog_url":"https://so-wh.at/","url":"https://so-wh.at/entry/20080425/p6","width":"100%","version":"1.0","author_name":"winebarrel","categories":["C\u8a00\u8a9e"],"blog_title":"so what","height":"190","type":"rich","title":" Traditional PKWARE Encryption\u306e\u5fa9\u53f7\u51e6\u7406\u3092\u66f8\u3044\u3066\u307f\u308b","published":"2008-04-25 00:00:00","author_url":"https://blog.hatena.ne.jp/winebarrel/","image_url":null,"html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fso-wh.at%2Fentry%2F20080425%2Fp6\" title=\" Traditional PKWARE Encryption\u306e\u5fa9\u53f7\u51e6\u7406\u3092\u66f8\u3044\u3066\u307f\u308b - so what\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","provider_url":"https://hatena.blog","description":"\u30c7\u30fc\u30bf\u3092\u51e6\u7406\u3057\u3066\u307f\u306a\u3044\u3068\u306a\u3093\u3068\u3082\u3002 #include <string.h> #include \"zlib.h\" void init_keys(uLong *keys) { keys[0] = 305419896L; keys[1] = 591751049L; keys[2] = 878082192L; } void update_keys(uLong *keys, char c) { keys[0] = crc32(keys[0], &c, 1); keys[1] = keys[1] + (keys[0] & 0xffL); keys[1] = keys[1] * 134775813L + 1\u2026"}