Last active
April 8, 2017 20:14
-
-
Save base10/25f06aaf9a76795f117c0a52a31ed466 to your computer and use it in GitHub Desktop.
Experimenting with BCrypt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require 'bcrypt' | |
require 'benchmark' | |
require 'humanize' | |
require 'pry' | |
include BCrypt | |
guesses = Array.new | |
costs = (8..16).to_a | |
(1001..11000).map { |num| guesses << num.humanize } | |
new_pass = "This is a long, complicated passphrase that won't be guessed." | |
costs.each do |cost| | |
hashed_pass = Password.create(new_pass, cost: cost) | |
time = Benchmark.measure do | |
guesses.each do |guess| | |
if hashed_pass == guess | |
puts "match!" | |
end | |
end | |
end | |
puts "Guesses: #{guesses.count}" | |
puts "Time: #{time}" | |
puts "Cost: #{hashed_pass.cost}" | |
puts "Salt: #{hashed_pass.salt}" | |
puts "-------------------------" | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Guesses: 10000 | |
Time: 149.580000 0.120000 149.700000 (149.751110) | |
Cost: 8 | |
Salt: $2a$08$UTz/J/9U9k5lRDiF9rr9Ju | |
------------------------- | |
Guesses: 10000 | |
Time: 301.920000 0.570000 302.490000 (302.796398) | |
Cost: 9 | |
Salt: $2a$09$RKvAfV6rkdO6a9VIiRkyE. | |
------------------------- | |
Guesses: 10000 | |
Time: 577.770000 0.170000 577.940000 (578.008237) | |
Cost: 10 | |
Salt: $2a$10$qskpMPqOI0/Q7m27ljRImu | |
------------------------- | |
Guesses: 10000 | |
Time: 1168.430000 0.550000 1168.980000 (1169.405617) | |
Cost: 11 | |
Salt: $2a$11$pIx7SIaRiswPcx/qexyjPe | |
------------------------- | |
Guesses: 10000 | |
Time: 2373.440000 1.670000 2375.110000 (2375.874326) | |
Cost: 12 | |
Salt: $2a$12$KC8koN9zFbLCZAuZ2hLv2. | |
------------------------- | |
Guesses: 10000 | |
Time: 4740.780000 3.210000 4743.990000 (4745.308169) | |
Cost: 13 | |
Salt: $2a$13$KlslIV1FFb9RpaYbRBHMYu | |
------------------------- | |
Guesses: 10000 | |
Time: 9481.490000 6.580000 9488.070000 (9491.711175) | |
Cost: 14 | |
Salt: $2a$14$lsCZkFrgojXqb.t4U5AHIu | |
------------------------- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment