Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ハッシュと暗号は違うぞ! / Do not confuse hashes and ciphers.
Search
HASEGAWA Tomoki
January 31, 2017
Programming
6
22k
ハッシュと暗号は違うぞ! / Do not confuse hashes and ciphers.
PHP勉強会#110での発表資料です。
HASEGAWA Tomoki
January 31, 2017
Tweet
Share
More Decks by HASEGAWA Tomoki
See All by HASEGAWA Tomoki
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
4
3.4k
カンファレンスのつくりかた / The Conference Code: What Makes It All Work
tomzoh
9
1.6k
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming
tomzoh
1
590
PHPで印刷所に入稿できる名札データを作る / Generating Print-Ready Name Tag Data with PHP
tomzoh
0
550
asumikamというカンファレンスオーガナイザの凄さを語る / The Brilliance of Asumikam
tomzoh
1
480
なぜキャッシュメモリは速いのか 余談集 / Why is Cache Memory So Fast? Extended.
tomzoh
0
270
なぜキャッシュメモリは速いのか / Why is Cache Memory So Fast?
tomzoh
3
1.5k
PHPからはじめるコンピュータアーキテクチャ 15分ダイジェスト版 / PHP Meets Silicon: A Fun Dive into Computer Structures 15mins ver
tomzoh
2
310
PHPでXOAUTH2を使ってGmailからメールを取り込む / Getting Mail from Gmail with XOAUTH2 in PHP
tomzoh
0
620
Other Decks in Programming
See All in Programming
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
260
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
530
システム成長を止めない!本番無停止テーブル移行の全貌
sakawe_ee
1
200
Agentic Coding: The Future of Software Development with Agents
mitsuhiko
0
100
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
1
18k
Systèmes distribués, pour le meilleur et pour le pire - BreizhCamp 2025 - Conférence
slecache
0
120
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.5k
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
260
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
1
10k
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
590
A full stack side project webapp all in Kotlin (KotlinConf 2025)
dankim
0
120
#kanrk08 / 公開版 PicoRubyとマイコンでの自作トレーニング計測装置を用いたワークアウトの理想と現実
bash0c7
1
770
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
690
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Optimizing for Happiness
mojombo
379
70k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Become a Pro
speakerdeck
PRO
29
5.4k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.7k
Navigating Team Friction
lara
187
15k
Transcript
ίϯϐϡʔλͷجૅ1 ϋογϡͱ҉߸ҧ͏ͧʂʂ ୩ஐر HASEGAWA Tomoki
ライフワーク: Web / iOSアプリ開発, ビール, 電子工作, サッカー観戦, レンタルカートレース, … 長谷川
智希 Web / iOS App Development, Beer, IoT, Watch soccer match, Rental Kart Racing, … デジタルサーカス株式会社 副団長CTO Digital Circus, Inc. Vice-master CTO Tokyo, Japan Lifework: @tomzoh
None
None
WE ARE HIRING!! Web Development Mobile App Development ( )
(iOS, Android) http://www.dgcircus.com Omotesando, Tokyo
ࠓͷςʔϚ • ࣮ࡍʹ͋ͬͨΓͱΓ: ͓٬͞·ʮηΩϡϦςΟ্DBʹύεϫʔυΛอଘ͠ͳ͍Ͱɻʯ ϕϯμʮͰύεϫʔυ҉߸Խͯ͠อଘ͠·͠ΐ͏ɻʯ ΅͘ʮ·ͬͯʂʂʂʂ ʯ • ϋογϡͱ҉߸ͷҧ͍͕ཧղ͞Ε͍ͯͳ͍͜Μͳੈͷ த͡ΌϙΠζϯ☠
• ίϯϐϡʔλΤϯδχΞͱͯͪ͠ΌΜͱཧղͯ͠ɺਖ਼ ͘͠ϋογϡ҉߸ԽΛ͓͏ɻ
ϋογϡ
ϋογϡ • γεςϜ։ൃɺಛʹWebγεςϜͰ࣌ͱͯ͠ϋο γϡΛ͏ɻ • ͦͷಛੑΛཧղ͠ͳ͍ͰϋογϡΛ༻͢Δͱɺ ηΩϡϦςΟ੬ऑੑΛ๊͑ΔՄೳੑ͕͋Δɻ • ϋογϡͷಛੑΛཧղͯ͠ਖ਼͍͘͠·͠ΐ͏ɻ
ϋογϡͱԿ͔
ӳ୯ޠͱͯ͠ͷҙຯ:
None
ΟΩϖσΟΞͰݟΔͱ:
None
None
ϋογϡͱԿ͔ • ʮσʔλ͔Βࢉग़ͨ͠খ͞ͳɻ֤σʔλΛ۠ผɾ දݱ͢Δతʹ༻͍Δʯ • σʔλΛϋογϡؔʹೖྗ͢Δͱɺϋογϡ ͕ग़ྗ͞ΕΔɻ • ϋογϡؔͷྫ: md5,
sha-1, sha-2 …
ϋογϡؔͷಛ Α͘ΘΕΔϋογϡؔ͜Μͳ෩ʹઃܭ͞Ε͍ͯΔ: • Կͬͯಉ͡ϋογϡʹͳΔ • ͲΜͳσʔλΛೖྗͯ͠ಉ͡͞ͷϋογϡʹͳΔ • ผͷσʔλʹର͍͍ͯͩͨ͠ผͷϋογϡʹͳΔ • ϋογϡ͔ΒݩͷσʔλΛࢉग़͢Δ͜ͱ΄΅Ͱ͖ͳ͍
ϋογϡؔͷ༻్
ϋογϡؔͷ༻్1 ʮμϯϩʔυ͖ͯͨ͠ϑΝΠϧɺ ͪΌΜͱμϯϩʔυͰ͖͔ͨͳ…ʯ • μϯϩʔυݩʹϋογϡؔͱϋογϡΛදࣔɻ • μϯϩʔυͨ͠ϑΝΠϧͷϋογϡΛखݩͰܭࢉͯͦ͠Ε ͱൺֱ͢Δɻ • ϋογϡ͕߹͑OKɻ
• ϑΝΠϧ͕վ͟Μ͞Ε͍ͯͨΓɺμϯϩʔυʹࣦഊ͍ͯ͠Εϋο γϡ͕߹Θͳ͍ɻ • aptͱ͔yumͰ෦తʹ༻͞Ε͍ͯΔɻ
UbuntuͷISOαΠτ
UbuntuͷISOαΠτ
UbuntuͷISOαΠτ c94d54942a2954cf852884d656224186 *ubuntu-16.04-desktop-amd64.iso 610c4a399df39a78866f9236b8c658da *ubuntu-16.04-desktop-i386.iso 23e97cd5d4145d4105fbf29878534049 *ubuntu-16.04-server-amd64.img 23e97cd5d4145d4105fbf29878534049 *ubuntu-16.04-server-amd64.iso 494c03028524dff2de5c41a800674692
*ubuntu-16.04-server-i386.img 494c03028524dff2de5c41a800674692 *ubuntu-16.04-server-i386.iso 17643c29e3c4609818f26becf76d29a3 *ubuntu-16.04.1-desktop-amd64.iso 9e4e30c37c99b4e029b4bfc2ee93eec2 *ubuntu-16.04.1-desktop-i386.iso d2d939ca0e65816790375f6826e4032f *ubuntu-16.04.1-server-amd64.img d2d939ca0e65816790375f6826e4032f *ubuntu-16.04.1-server-amd64.iso 455206c599c25d6a576ba23ca906741a *ubuntu-16.04.1-server-i386.img 455206c599c25d6a576ba23ca906741a *ubuntu-16.04.1-server-i386.iso
ϋογϡؔͷ༻్2 ʮ/node/1ͱ͔ɺID͕URLʹؙݟ͑ͳͷΧοί ѱ͍ͳ…ʯ • IDΛϋογϡؔͷೖྗͱ͠ɺURLʹϋογϡΛ͏ɻ • /user/9e4e30c37c99b4e029b4bfc2ee93eec2
ϋογϡؔͷ༻్3 ʮύεϫʔυΛͦͷ··DBʹอଘ͢Δͷةݥɻʯ • Ϣʔβ͕ೖྗͨ͠ύεϫʔυ͕Ϣʔβ͕ઃఆͨ͠ͷͱಉ͔͕͡ ͔Εྑ͍ɻ • ϋογϡؔΛܾΊ͓͖ͯɺDBʹύεϫʔυͷϋογϡΛอ ଘ͢Δɻ • ࣍ճϩάΠϯ࣌ʹϢʔβ͕ೖྗͨ͠จࣈྻ͔ΒϋογϡΛܭࢉ
͠ɺDBʹอଘ͞Εͨͷͱൺֱ͢Δɻ • ϋογϡ͕߹͑Ϣʔβ͕ೖྗͨ͠จࣈྻͦͷϢʔβ͕ઃఆͨ͠ ύεϫʔυͱ͍͠ɻ • DB͕ྲྀग़ͯ͠ύεϫʔυόϨͳ͍ɻ
ϋογϡͷಛੑʹΑΔҙࣄ߲
ϋογϡؔͷ༻్1 ʮμϯϩʔυ͖ͯͨ͠ϑΝΠϧɺ ͪΌΜͱμϯϩʔυͰ͖͔ͨͳ…ʯ • μϯϩʔυݩʹϋογϡؔͱϋογϡΛදࣔɻ • μϯϩʔυͨ͠ϑΝΠϧͷϋογϡΛखݩͰܭࢉͯͦ͠Ε ͱൺֱ͢Δɻ • ϋογϡ͕߹͑OKɻ
• ϑΝΠϧ͕վ͟Μ͞Ε͍ͯͨΓɺμϯϩʔυʹࣦഊ͍ͯ͠Εϋο γϡ͕߹Θͳ͍ɻ • aptͱ͔yumͰ෦తʹ༻͞Ε͍ͯΔɻ
ϋογϡؔͷಛ Α͘ΘΕΔϋογϡؔ͜Μͳ෩ʹઃܭ͞Ε͍ͯΔ: • Կͬͯಉ͡ϋογϡʹͳΔ • ͲΜͳσʔλΛೖྗͯ͠ಉ͡͞ͷϋογϡʹͳΔ • ผͷσʔλʹର͍͍ͯͩͨ͠ผͷϋογϡʹͳΔ • ϋογϡ͔ΒݩͷσʔλΛࢉग़͢Δ͜ͱ΄΅Ͱ͖ͳ͍
ϋογϡিಥʹΑΔ߈ܸ ਆιϑτ͕Ͱ͖ͨͷͰެ։͢ΔΑɻ ϋογϡ͖Ͷɻ
ϋογϡিಥʹΑΔ߈ܸ ਆιϑτ͕Ͱ͖ͨͷͰެ։͢ΔΑɻ ϋογϡ͖Ͷɻ ΟϧεೖΕͯ…ɻඌʹΰϛσʔλ͚Ճ͑ͯϋο γϡಉ͡ʹͳΔ༷ʹͨ͠Ζɻ
ϋογϡিಥʹΑΔ߈ܸ μϯϩʔυͨ͠ϑΝΠϧɺେৎ͔ͳʁ ϋογϡ߹ͬͯΔ͠OKʂ ਆιϑτ͕Ͱ͖ͨͷͰެ։͢ΔΑɻ ϋογϡ͖Ͷɻ ΟϧεೖΕͯ…ɻඌʹΰϛσʔλ͚Ճ͑ͯϋο γϡಉ͡ʹͳΔ༷ʹͨ͠Ζɻ
ϋογϡিಥʹΑΔ߈ܸ μϯϩʔυͨ͠ϑΝΠϧɺେৎ͔ͳʁ ϋογϡ߹ͬͯΔ͠OKʂ ਆιϑτ͕Ͱ͖ͨͷͰެ։͢ΔΑɻ ϋογϡ͖Ͷɻ ΟϧεೖΕͯ…ɻඌʹΰϛσʔλ͚Ճ͑ͯϋο γϡಉ͡ʹͳΔ༷ʹͨ͠Ζɻ ͗ΌʔʂΟϧεೖΓͩͬͨʂʂʂ
ϋογϡিಥʹΑΔ߈ܸ μϯϩʔυͨ͠ϑΝΠϧɺେৎ͔ͳʁ ϋογϡ߹ͬͯΔ͠OKʂ ਆιϑτ͕Ͱ͖ͨͷͰެ։͢ΔΑɻ ϋογϡ͖Ͷɻ ΟϧεೖΕͯ…ɻඌʹΰϛσʔλ͚Ճ͑ͯϋο γϡಉ͡ʹͳΔ༷ʹͨ͠Ζɻ ͗ΌʔʂΟϧεೖΓͩͬͨʂʂʂ Ͳ͏ͨ͠ΒΑ͔ͬͨʁ
ϋογϡিಥʹΑΔ߈ܸͷରࡦ • Ͳ͏͠Α͏ͳ͍ɻ • ϋογϡͷিಥΛҙਤతʹى͜͠ʹ͍͘ΞϧΰϦ ζϜΛ͏͔͠ͳ͍ɻ
ϋογϡিಥʹΑΔ߈ܸͷରࡦ • Ͳ͏͠Α͏ͳ͍ɻ • ϋογϡͷিಥΛҙਤతʹى͜͠ʹ͍͘ΞϧΰϦ ζϜΛ͏͔͠ͳ͍ɻ
ϋογϡؔͷ༻్2 ʮ/node/1ͱ͔ɺID͕URLʹؙݟ͑ͳͷΧοί ѱ͍ͳ…ʯ • IDΛϋογϡؔͷೖྗͱ͠ɺURLʹϋογϡΛ͏ɻ • /user/9e4e30c37c99b4e029b4bfc2ee93eec2
ݯ૾ܭࢉʹΑΔ߈ܸ /node/1 ͬͯͷΞϨͳͷͰϋογϡԽͨ͠Ζɻ $url = sprintf("/user/%s", md5($user_id));
ݯ૾ܭࢉʹΑΔ߈ܸ /node/1 ͬͯͷΞϨͳͷͰϋογϡԽͨ͠Ζɻ $url = sprintf("/user/%s", md5($user_id)); ͜ͷจࣈྻͷฒͼɺmd5ͩͳɻͲ͏ͤݩ࿈൪ͩΖɻ for ($i
= 0; $i < 1000; $i++)} $page = file_get_contents( sprintf("/user/%s", md5($i))); }
ݯ૾ܭࢉʹΑΔ߈ܸ /node/1 ͬͯͷΞϨͳͷͰϋογϡԽͨ͠Ζɻ $url = sprintf("/user/%s", md5($user_id)); ͜ͷจࣈྻͷฒͼɺmd5ͩͳɻͲ͏ͤݩ࿈൪ͩΖɻ for ($i
= 0; $i < 1000; $i++)} $page = file_get_contents( sprintf("/user/%s", md5($i))); } શ෦όϨͨʂ
ݯ૾ܭࢉʹΑΔ߈ܸ /node/1 ͬͯͷΞϨͳͷͰϋογϡԽͨ͠Ζɻ $url = sprintf("/user/%s", md5($user_id)); ͜ͷจࣈྻͷฒͼɺmd5ͩͳɻͲ͏ͤݩ࿈൪ͩΖɻ for ($i
= 0; $i < 1000; $i++)} $page = file_get_contents( sprintf("/user/%s", md5($i))); } શ෦όϨͨʂ Ͳ͏ͨ͠ΒΑ͔ͬͨʁ
ݯ૾ܭࢉʹΑΔ߈ܸͷରࡦ1 • ݩσʔλ͕όϨͳ͍Α͏ʹ͢Δɻ • ͦͷͨΊʹɺݩσʔλʹιϧτΛՃ͢Δɻ • ιϧτԿͰྑ͍ɻ20จࣈҎ্͙Β͍ͷਪଌ͠ʹ͍͘จࣈ ྻɻ • ʮ࿈൪ͱ͔ΛΘ͔Γʹ͘͘͢Δʯ༷ͳ༻్ͰɺιϧτΛ
͚ͳ͍ܗͰϋογϡؔΛ͏͜ͱແ͍ͱࢥͬͯྑ͍ɻ
ݯ૾ܭࢉʹΑΔ߈ܸͷରࡦ1 • ݩσʔλ͕όϨͳ͍Α͏ʹ͢Δɻ • ͦͷͨΊʹɺݩσʔλʹιϧτΛՃ͢Δɻ • ιϧτԿͰྑ͍ɻ20จࣈҎ্͙Β͍ͷਪଌ͠ʹ͍͘จࣈ ྻɻ • ʮ࿈൪ͱ͔ΛΘ͔Γʹ͘͘͢Δʯ༷ͳ༻్ͰɺιϧτΛ
͚ͳ͍ܗͰϋογϡؔΛ͏͜ͱແ͍ͱࢥͬͯྑ͍ɻ $salt = "aemi4ahcoh7weeN2euth"; $url = sprintf("/user/%s", md5($salt.$user_id));
ϋογϡؔͷ༻్3 ʮύεϫʔυΛͦͷ··DBʹอଘ͢Δͷةݥɻʯ • Ϣʔβ͕ೖྗͨ͠ύεϫʔυ͕Ϣʔβ͕ઃఆͨ͠ͷͱಉ͔͕͡ ͔Εྑ͍ɻ • ϋογϡؔΛܾΊ͓͖ͯɺDBʹύεϫʔυͷϋογϡΛอ ଘ͢Δɻ • ࣍ճϩάΠϯ࣌ʹϢʔβ͕ೖྗͨ͠จࣈྻ͔ΒϋογϡΛܭࢉ
͠ɺDBʹอଘ͞Εͨͷͱൺֱ͢Δɻ • ϋογϡ͕߹͑Ϣʔβ͕ೖྗͨ͠จࣈྻͦͷϢʔβ͕ઃఆͨ͠ ύεϫʔυͱ͍͠ɻ • DB͕ྲྀग़ͯ͠ύεϫʔυόϨͳ͍ɻ
ݯ૾ܭࢉʹΑΔ߈ܸ ύεϫʔυΛϋογϡԽͯ͠DBʹอଘͨ͠Αɻ ͜ΕͰσʔλ͕࿙Ӯͯ͠େৎʂ
ݯ૾ܭࢉʹΑΔ߈ܸ ύεϫʔυΛϋογϡԽͯ͠DBʹอଘͨ͠Αɻ ͜ΕͰσʔλ͕࿙Ӯͯ͠େৎʂ ͜ͷจࣈྻͷฒͼɺmd5ͩͳɻΑ͋͘Δύεϫʔυͷ දΛͬͯ…ɻ ݩσʔλ md5 abcde ab56b4d92b40713acc5af89985d4b786 qwerty
d8578edf8458ce06fbc5bb76a58c5ca4 password 5f4dcc3b5aa765d61d8327deb882cf99 : :
ݯ૾ܭࢉʹΑΔ߈ܸ ύεϫʔυΛϋογϡԽͯ͠DBʹอଘͨ͠Αɻ ͜ΕͰσʔλ͕࿙Ӯͯ͠େৎʂ ͋ͬͱ͍͏ؒʹύεϫʔυ͕Εͨʂ ͜ͷจࣈྻͷฒͼɺmd5ͩͳɻΑ͋͘Δύεϫʔυͷ දΛͬͯ…ɻ ݩσʔλ md5 abcde ab56b4d92b40713acc5af89985d4b786
qwerty d8578edf8458ce06fbc5bb76a58c5ca4 password 5f4dcc3b5aa765d61d8327deb882cf99 : :
ݯ૾ܭࢉʹΑΔ߈ܸ ύεϫʔυΛϋογϡԽͯ͠DBʹอଘͨ͠Αɻ ͜ΕͰσʔλ͕࿙Ӯͯ͠େৎʂ ͋ͬͱ͍͏ؒʹύεϫʔυ͕Εͨʂ Ͳ͏ͨ͠ΒΑ͔ͬͨʁ ͜ͷจࣈྻͷฒͼɺmd5ͩͳɻΑ͋͘Δύεϫʔυͷ දΛͬͯ…ɻ ݩσʔλ md5 abcde
ab56b4d92b40713acc5af89985d4b786 qwerty d8578edf8458ce06fbc5bb76a58c5ca4 password 5f4dcc3b5aa765d61d8327deb882cf99 : :
ݯ૾ܭࢉʹΑΔ߈ܸͷରࡦ2 • Ϣʔβ͕ͲΜͳύεϫʔυΛ͚ͯςʔϒϧʹͦ Ε͕ݱΕͳ͍༷ʹ͢Δɻ • ͦͷͨΊʹɺݩσʔλʹιϧτΛՃ͢Δɻ • લͷέʔεͱಉ͡ɻ • ϋογϡͱฉ͍ͨΒιϧτʁͱࢥ͏͙Β͍Ͱྑ͍ɻ
• ͪͳΈʹ͜ͷςʔϒϧɺ͘͢͝σΧ͍ɻ • 4จࣈͰ640MBɺ5จࣈͰ50GBɺ8จࣈͰ12PBɻ • ϨΠϯϘʔςʔϒϧͱ͍͏ํ๏͕͋Δɻ IUUQXXXTMJEFTIBSFOFUIJNBSVTBMU ࢀߟ
ϋογϡͷিಥ
ϋογϡͷিಥ • ϋογϡͷিಥ: ผͷσʔλΛϋογϡؔʹೖΕ͍ͯΔͷʹɺಉ͡ϋογϡ ͕ग़͖ͯͯ͠·͏͜ͱɻ • ͲΜͳϋογϡؔΛબΜͰϋογϡඞͣিಥ͢Δɻ ݩσʔλ 32bit ϋογϡ
2bit data 1 data 2 data 3 data 4 hash 1 hash 2 hash 3 hash 4 data 5
ϋογϡͷিಥ • ϋογϡͷিಥ: ผͷσʔλΛϋογϡؔʹೖΕ͍ͯΔͷʹɺಉ͡ϋογϡ ͕ग़͖ͯͯ͠·͏͜ͱɻ • ͲΜͳϋογϡؔΛબΜͰϋογϡඞͣিಥ͢Δɻ ݩσʔλ 32bit ϋογϡ
2bit data 1 data 2 data 3 data 4 hash 1 hash 2 hash 3 hash 4 data 5
ϋογϡͷিಥ • ϋογϡͷিಥ: ผͷσʔλΛϋογϡؔʹೖΕ͍ͯΔͷʹɺಉ͡ϋογϡ ͕ग़͖ͯͯ͠·͏͜ͱɻ • ͲΜͳϋογϡؔΛબΜͰϋογϡඞͣিಥ͢Δɻ ݩσʔλ 32bit ϋογϡ
2bit data 1 data 2 data 3 data 4 hash 1 hash 2 hash 3 hash 4 data 5
ϋογϡͷিಥ • ϋογϡͷিಥ: ผͷσʔλΛϋογϡؔʹೖΕ͍ͯΔͷʹɺಉ͡ϋογϡ ͕ग़͖ͯͯ͠·͏͜ͱɻ • ͲΜͳϋογϡؔΛબΜͰϋογϡඞͣিಥ͢Δɻ ݩσʔλ 32bit ϋογϡ
2bit data 1 data 2 data 3 data 4 hash 1 hash 2 hash 3 hash 4 data 5
ϋογϡͷিಥ • ϋογϡͷিಥ: ผͷσʔλΛϋογϡؔʹೖΕ͍ͯΔͷʹɺಉ͡ϋογϡ ͕ग़͖ͯͯ͠·͏͜ͱɻ • ͲΜͳϋογϡؔΛબΜͰϋογϡඞͣিಥ͢Δɻ ݩσʔλ 32bit ϋογϡ
2bit data 1 data 2 data 3 data 4 hash 1 hash 2 hash 3 hash 4 data 5
ϋογϡͷিಥ • ϋογϡͷিಥ: ผͷσʔλΛϋογϡؔʹೖΕ͍ͯΔͷʹɺಉ͡ϋογϡ ͕ग़͖ͯͯ͠·͏͜ͱɻ • ͲΜͳϋογϡؔΛબΜͰϋογϡඞͣিಥ͢Δɻ ݩσʔλ 32bit ϋογϡ
2bit data 1 data 2 data 3 data 4 hash 1 hash 2 hash 3 hash 4 data 5
ϋογϡ͕িಥ͢Δલఏͷઃܭ • ϋογϡඞͣিಥ͢Δ • ϋογϡΛ͏߹ʹিಥͨ͠ΒࠔΔ͔ࠔΒͳ͍͔Λඞͣ ߟ͑Δɻ • URLͷྫͳͲɺϢχʔΫͰͳ͍ͱࠔΔͷɺඞͣিಥͯ͠ ͍ͳ͍͔ͷνΣοΫΛ͢Δɻ •
ύεϫʔυͷྫিಥ͔ͯ͠·Θͳ͍ɻ • ʮͦͷϋογϡΛDBʹอଘ͢Δ࣌ʹɺͦͷΧϥϜ͕ϢχʔΫ Ͱ͋Δඞཁ͕͋Δ͔ʯ
ଥͳιϧτͱ • ιϧτͱͯ͠ଥͳจࣈྻԿ͔ • ͕͞ҰఆҎ্͋Δ͜ͱ͚ͩͲ… • ͍ιϧτϋογϡؔʹೖྗ͢ΔσʔλͷใྔΛ૿͢ɻ • ใྔ͕૿͑ΔͱিಥΛى͘͜͢͠ͳΔ͔͠Εͳ͍ɻ •
Ұൠతʹ༻͞ΕΔϋογϡؔ͜ͷ༷ͳʮ͍ۙσʔλʢι ϧτ͕ಉ͡Ͱݩσʔλ෦͚͕ͩҧ͏σʔλʣʯ͕িಥ͠ʹ͘ ͍༷ʹઃܭ͞Ε͍ͯΔɻ • 20จࣈఔɺͱ͔ɺ26จࣈఔɺͱ͔͍Ζ͍ΖݴΘΕ͍ͯΔɻ
·ͱΊ
·ͱΊ • ϋογϡͱ҉߸ҧ͏Αɻ • ϋογϡ҉߸Λ͏࣌ɺͳͥͦΕΛ͏͔ɺ ͳͥͦͷஅΛ͖͔͢Λߟ͑Α͏ɻ • ϋογϡΛ͏߹… • ඞͣɺιϧτΛ͚Α͏ɻ
• ඞͣɺিಥͯ͠ྑ͍͔Λߟ͑Α͏ɻ
ʮύεϫʔυͷϋογϡԽʯͱ͔ ͍͠ͱ͜Ζ͍͍ͨͯ ಄͍͍ਓ͕ߟ͑ͯΈΛ ࡞ͬͯ͘Ε͍ͯΔ
ڊਓͷݞʹΖ͏
ͨͩ͠
தΛཧղͤͣʹ ͳΜͱͳ͘͏ͷ࠷ѱ
ҙຯ͕ແ͍͚ͩͳΒྑ͍͕ɺ ͔ͤͬ͘ߟ͑ΒΕͨΈΛ ࡴ͢͜ͱʹͳΓಘΔ
None
None
None
ࣗԿΛ͍ͨ͠ͷ͔ DrupalԿΛ༩͑ͯ͘Ε͍ͯΔͷ͔ ͪΌΜͱཧղͯ͠ɺਖ਼͓͘͠͏
ͦͯ͠…
͜ͷखͷ ʮಛఆͷʹґଘ͠ͳ͍ࣝʯ ΤϯδχΞͷ݂ͱͳΓͱͳΓɺ ΤϯδχΞͱͯ͠ੜ͖͍ͯͨ͘Ίͷ ྗʹͳΔ
ʮྗ͕…ཉ͍͔͠…ʯ
͜͏͍͏ࣝΛͲ͏ͬͯಘΔ͔ • ϋογϡʹݶΒͣɺιϑτΣΞ։ൃʹଟ͘ͷप ล͕ࣝඞཁɻ • ใܥͷେֶઐֶߍͰڭΘΔʢͣʣɻ • ମܥతʹֶ͘ͿͷͰ͋Εࢿ֨ࢼݧ͕ศརɻ • IPAʢใॲཧਪਐػߏʣͷ
ʮใॲཧٕज़ऀࢼݧʯ͕͓͢͢Ίɻ http://www.jitec.ipa.go.jp
ऴ