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
22k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ハッシュと暗号は違うぞ! / Do not confuse hashes and ciphers.
PHP勉強会#110での発表資料です。
HASEGAWA Tomoki
January 31, 2017
More Decks by HASEGAWA Tomoki
See All by HASEGAWA Tomoki
ファミコンでPHPを動かす / PHP on the Famicom
tomzoh
2
750
3Dプリンタでコレはこう作る! - マルチディスプレイ用モニタアームマウンタの作り方 / Made with a 3D Printer: DIY Multi-Display Monitor Arm Mount
tomzoh
0
140
デシリアライゼーションを理解する / Inside Deserialization
tomzoh
0
1.2k
PHPer Book Revue: CPUの創りかた / How to Build a CPU
tomzoh
0
120
超入門3Dプリンタ: 生活を便利にするモノを作ろう / Getting Started with 3D Printing: Making small things that quietly improve your daily life.
tomzoh
0
110
最新ハードウェアの中の8ビットCPU / The Hidden Power of 8-Bit CPUs in Modern Hardware
tomzoh
0
320
PHPからはじめるコンピュータアーキテクチャ / From Scripts to Silicon: A Journey Through the Layers of Computing Hiroshima 2025 Edition
tomzoh
0
450
PHPからはじめるコンピュータアーキテクチャ / From Scripts to Silicon: A Journey Through the Layers of Computing
tomzoh
5
960
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
6
4.9k
Other Decks in Programming
See All in Programming
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
3.8k
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
400
Built Our Own Background Agent at LayerX #aidevex_findy
layerx
PRO
9
4.8k
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
200
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
130
React本体のコードリーディング
high_g_engineer
1
130
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.4k
テーブルをDELETEした
yuzneri
0
130
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
470
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
200
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
210
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
1
270
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
8.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.4k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
280
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Why Our Code Smells
bkeepers
PRO
340
58k
Claude Code のすすめ
schroneko
67
230k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
4 Signs Your Business is Dying
shpigford
187
22k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
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
ऴ