SlideShare a Scribd company logo
Fork/Join frameworkRainbow attack examplePhilip Savkinphilip.savkin@gmail.comTwitter: philipsavkin
Fork Join FrameworkJava framework for supporting a style of parallel programming in which problems are solved by (recursively) splitting them into subtasks that are solved in parallel, waiting for them to complete, and then composing results.http://gee.cs.oswego.edu/dl/papers/fj.pdf
AlgorithmResult solve(Problem problem) {  if (problem is small)    directly solve problem  else {    split problem into independent parts    fork new subtasks to solve each part    join all subtasks   compose result from subresults  }}
Core classes
Differences from ThreadPoolExecutorSuited for recursive tasks and “divide and conquer” algorithmsWork stealing
Work StealingInitial stateWait for all threads to complete their tasks
Work StealingOther threads are idle until the first thread finishedWait for all threads to complete their tasks
Part II
Practical examplePasswords are rarely kept in cleartext nowadaysThe problem: restore passwords from a list of password hashes with Rainbow attack
Rainbow attackhttp://en.wikipedia.org/wiki/Rainbow_attackBuild a Rainbow table using the list of possible passwordsLookup passwords in the table
The algorithmLoad top 2000 english wordsAdd all case permutationsAdd numbers 0-9Results in 6 000 000 combinationsCompute hashesLookup hashes in the table
How ForkJoin can help?CPU intensive tasksGenerate the list of all possible passwordsCompute hashes
Let’s see some code!
Test resultsTested on Amazon EC2 Extra Large instance running 64 bit AMI Linux15 Gb RAM, 4 processorsRainbow table size: 6 041 508Input: list of 1000 MD5 hashesFound all 10 passwords
Test results
Bonus slide - OfftopicNever keep passwords in cleartext!MD5 is a bad choiceAlways add “salt” to passwordsThe right way: use Bcrypt!
More offtopicThe “pastebin” experimenthttp://pastebin.com/1iL2P0G5Found one password “a1”
QuestionsThank you!

More Related Content

KEY
Fork/Join for Fun and Profit!
Sander Mak (@Sander_Mak)
 
PDF
Fork Join (BeJUG 2012)
Sander Mak (@Sander_Mak)
 
PPTX
Fork and join framework
Minh Tran
 
PDF
Concurrency Utilities in Java 8
Martin Toshev
 
PPTX
Concurrency with side-effects – cats way
stasimus
 
PPTX
Demystifying functional effect systems in Scala
Dmitry Karlinsky
 
PDF
The Mayans Lost Guide to RxJava on Android
Fernando Cejas
 
PDF
RxJava@DAUG
Maxim Volgin
 
Fork/Join for Fun and Profit!
Sander Mak (@Sander_Mak)
 
Fork Join (BeJUG 2012)
Sander Mak (@Sander_Mak)
 
Fork and join framework
Minh Tran
 
Concurrency Utilities in Java 8
Martin Toshev
 
Concurrency with side-effects – cats way
stasimus
 
Demystifying functional effect systems in Scala
Dmitry Karlinsky
 
The Mayans Lost Guide to RxJava on Android
Fernando Cejas
 
RxJava@DAUG
Maxim Volgin
 

What's hot (20)

PDF
Practical RxJava for Android
Tomáš Kypta
 
ODP
Java Concurrency, Memory Model, and Trends
Carol McDonald
 
ODP
Threads and concurrency in Java 1.5
Peter Antman
 
PDF
The Future of Futures - A Talk About Java 8 CompletableFutures
Haim Yadid
 
PDF
Working With Concurrency In Java 8
Heartin Jacob
 
PDF
Wait for your fortune without Blocking!
Roman Elizarov
 
PDF
Asynchronous I/O in Python 3
Feihong Hsu
 
PPTX
Modern Java Workshop
Simon Ritter
 
PDF
Clojure made-simple - John Stevenson
JAX London
 
PPTX
Java concurrency in practice
Mikalai Alimenkou
 
KEY
Modern Java Concurrency
Ben Evans
 
PDF
Functional Reactive Programming / Compositional Event Systems
Leonardo Borges
 
PPTX
C#: Understanding ConfigureAwait(false)
Shuhei Eda
 
PDF
How To Use IO Monads in Scala?
Knoldus Inc.
 
DOCX
Parallel Programming With Dot Net
Neeraj Kaushik
 
PPTX
Headless fragments in Android
Ali Muzaffar
 
PPTX
Effective java - concurrency
feng lee
 
PDF
Building Hermetic Systems (without Docker)
William Farrell
 
PPTX
Non blocking programming and waiting
Roman Elizarov
 
PDF
Comparing different concurrency models on the JVM
Mario Fusco
 
Practical RxJava for Android
Tomáš Kypta
 
Java Concurrency, Memory Model, and Trends
Carol McDonald
 
Threads and concurrency in Java 1.5
Peter Antman
 
The Future of Futures - A Talk About Java 8 CompletableFutures
Haim Yadid
 
Working With Concurrency In Java 8
Heartin Jacob
 
Wait for your fortune without Blocking!
Roman Elizarov
 
Asynchronous I/O in Python 3
Feihong Hsu
 
Modern Java Workshop
Simon Ritter
 
Clojure made-simple - John Stevenson
JAX London
 
Java concurrency in practice
Mikalai Alimenkou
 
Modern Java Concurrency
Ben Evans
 
Functional Reactive Programming / Compositional Event Systems
Leonardo Borges
 
C#: Understanding ConfigureAwait(false)
Shuhei Eda
 
How To Use IO Monads in Scala?
Knoldus Inc.
 
Parallel Programming With Dot Net
Neeraj Kaushik
 
Headless fragments in Android
Ali Muzaffar
 
Effective java - concurrency
feng lee
 
Building Hermetic Systems (without Docker)
William Farrell
 
Non blocking programming and waiting
Roman Elizarov
 
Comparing different concurrency models on the JVM
Mario Fusco
 
Ad

Similar to Fork Join (20)

PPT
topic_presentation_java_threads_example.ppt
ShitalBahale2
 
PPT
java threads for easy learn and develop
pavanrock859
 
PDF
Java Threads
Hamid Ghorbani
 
PPTX
Threads in JAVA
Haldia Institute of Technology
 
PPTX
Multithreading and concurrency in android
Rakesh Jha
 
PDF
A Java Fork_Join Framework
Hiroshi Ono
 
PDF
Java programming basics
Hamid Ghorbani
 
PDF
TorqueBox: The beauty of Ruby with the power of JBoss. Presented at Devnexus...
bobmcwhirter
 
PDF
Java Multithreading Interview Questions PDF By ScholarHat
Scholarhat
 
PDF
Using RequireJS for Modular JavaScript Code
Thomas Lundström
 
PDF
Java concurrency
Abhijit Gaikwad
 
PDF
JAVA Threads explained
Pradhan Rishi Sharma
 
PPTX
Threading in C#
Medhat Dawoud
 
PPTX
MERIMeeting du 27 mai 2014 - Parallel Programming
Olivier NAVARRE
 
PPT
Basic java part_ii
Khaled AlGhazaly
 
PPTX
Java tips
Viswanath Lekshmanan
 
KEY
What's New In Python 2.4
Richard Jones
 
PPTX
Threads and synchronization in C# visual programming.pptx
azkamurat
 
topic_presentation_java_threads_example.ppt
ShitalBahale2
 
java threads for easy learn and develop
pavanrock859
 
Java Threads
Hamid Ghorbani
 
Multithreading and concurrency in android
Rakesh Jha
 
A Java Fork_Join Framework
Hiroshi Ono
 
Java programming basics
Hamid Ghorbani
 
TorqueBox: The beauty of Ruby with the power of JBoss. Presented at Devnexus...
bobmcwhirter
 
Java Multithreading Interview Questions PDF By ScholarHat
Scholarhat
 
Using RequireJS for Modular JavaScript Code
Thomas Lundström
 
Java concurrency
Abhijit Gaikwad
 
JAVA Threads explained
Pradhan Rishi Sharma
 
Threading in C#
Medhat Dawoud
 
MERIMeeting du 27 mai 2014 - Parallel Programming
Olivier NAVARRE
 
Basic java part_ii
Khaled AlGhazaly
 
What's New In Python 2.4
Richard Jones
 
Threads and synchronization in C# visual programming.pptx
azkamurat
 
Ad

More from Dmitry Buzdin (20)

PDF
How Payment Cards Really Work?
Dmitry Buzdin
 
PDF
Как построить свой фреймворк для автотестов?
Dmitry Buzdin
 
PDF
How to grow your own Microservice?
Dmitry Buzdin
 
PDF
How to Build Your Own Test Automation Framework?
Dmitry Buzdin
 
PDF
Delivery Pipeline for Windows Machines
Dmitry Buzdin
 
PPTX
Big Data Processing Using Hadoop Infrastructure
Dmitry Buzdin
 
PDF
JOOQ and Flyway
Dmitry Buzdin
 
PDF
Developing Useful APIs
Dmitry Buzdin
 
PPTX
Whats New in Java 8
Dmitry Buzdin
 
PPTX
Архитектура Ленты на Одноклассниках
Dmitry Buzdin
 
PDF
Dart Workshop
Dmitry Buzdin
 
PDF
Riding Redis @ask.fm
Dmitry Buzdin
 
PDF
Rubylight JUG Contest Results Part II
Dmitry Buzdin
 
PDF
Rubylight Pattern-Matching Solutions
Dmitry Buzdin
 
PDF
Refactoring to Macros with Clojure
Dmitry Buzdin
 
PPTX
Poor Man's Functional Programming
Dmitry Buzdin
 
PDF
Rubylight programming contest
Dmitry Buzdin
 
PPTX
Continuous Delivery
Dmitry Buzdin
 
PPTX
Introduction to DevOps
Dmitry Buzdin
 
PDF
Thread Dump Analysis
Dmitry Buzdin
 
How Payment Cards Really Work?
Dmitry Buzdin
 
Как построить свой фреймворк для автотестов?
Dmitry Buzdin
 
How to grow your own Microservice?
Dmitry Buzdin
 
How to Build Your Own Test Automation Framework?
Dmitry Buzdin
 
Delivery Pipeline for Windows Machines
Dmitry Buzdin
 
Big Data Processing Using Hadoop Infrastructure
Dmitry Buzdin
 
JOOQ and Flyway
Dmitry Buzdin
 
Developing Useful APIs
Dmitry Buzdin
 
Whats New in Java 8
Dmitry Buzdin
 
Архитектура Ленты на Одноклассниках
Dmitry Buzdin
 
Dart Workshop
Dmitry Buzdin
 
Riding Redis @ask.fm
Dmitry Buzdin
 
Rubylight JUG Contest Results Part II
Dmitry Buzdin
 
Rubylight Pattern-Matching Solutions
Dmitry Buzdin
 
Refactoring to Macros with Clojure
Dmitry Buzdin
 
Poor Man's Functional Programming
Dmitry Buzdin
 
Rubylight programming contest
Dmitry Buzdin
 
Continuous Delivery
Dmitry Buzdin
 
Introduction to DevOps
Dmitry Buzdin
 
Thread Dump Analysis
Dmitry Buzdin
 

Recently uploaded (20)

PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
The Future of Artificial Intelligence (AI)
Mukul
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Doc9.....................................
SofiaCollazos
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 

Fork Join