Skip to content

Instantly share code, notes, and snippets.

@Muratam
Last active September 12, 2019 01:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Muratam/89bee6a5ea3f362f705448e1b69324d0 to your computer and use it in GitHub Desktop.
Save Muratam/89bee6a5ea3f362f705448e1b69324d0 to your computer and use it in GitHub Desktop.
bcryptを20個x10回やるやつ
package main
import (
"fmt"
"golang.org/x/crypto/bcrypt"
)
var hashes = [...][]byte{
[]byte("$2a$10$Rvrp.PkB.pnvmXkbu7IYvuglQhJ.kAGJG/.rkCgiDbC1JCEyP7Avq"),
[]byte("$2a$10$mrNWPjlGFqRPbHmzybgJye90m7aUL12f0ZaEmzMBZ2rOfpmba23qO"),
[]byte("$2a$10$gIdUsTtTLfjmYvqwDtXn5OqJYhc1KJ8om6Bd0U1tXIMg/XBUHl3eC"),
[]byte("$2a$10$7CmMBfKnT8uhIjzsKM6UNedIl/3j2RoWUF1PS8ffxWEmcqxHTEGVq"),
[]byte("$2a$10$EFQoyhODmuceu8pvbLh6xuY/7H8c13H1K3RQbbdkN9d6NOtcBYMjW"),
[]byte("$2a$10$Vlb.G1.FpNJ3WoofH3cUFOVj82JuTDZqqwyw3xue/NcAklfIsr0.K"),
[]byte("$2a$10$orKV306C4zGufGHakwIHJ.Nmo.F/rWOuCcYwa2KW8m8iwq4lG9n.u"),
[]byte("$2a$10$LIbJuwpr2SE7kGkPUYFdquoBkC2Zl031lfEYrtqU1kCv0YSeiUnea"),
[]byte("$2a$10$a3f9VNnWQZEREtxMLY4zHer0cRvVQhfeYSs7zmKzpnZNGYbVzCAjW"),
[]byte("$2a$10$fp6Yv2caT6iiS2nnVwvfH.wvU4VUaKrIrrE6mlNrYvckudVQCDQSu"),
[]byte("$2a$10$TG3dc6r3RTEvUwzaAcxv/OmlTyzcEMoBpwxzo/mCDknyTkYXvVLc2"),
[]byte("$2a$10$2C4XMikdJ8.fcCDnGE5RyOgbnX7PnM32MfLqMjXs.ZNFLNeovvggy"),
[]byte("$2a$10$vGqBv1S6hc.AcQXrH1L8Lews7KDYp/Yq.Jx8aucBxpcnoH4TpC/1a"),
[]byte("$2a$10$QSXt7XqC89sXNoAAJ8cBz.j2PmtYeJRdjvSwvaBv5DWs54YRGgVAq"),
[]byte("$2a$10$Hu3NJf8evtUCP8bk7Jsc3egiqtV3MUREkSozai.wOfX/E86e2Ji8u"),
[]byte("$2a$10$m0qtpr3YjC4nCWHT9dyRqu6NGpOUg7mD5N8U.zhH6O4jpzX03WDYm"),
[]byte("$2a$10$5n/BlMBOh8HSIkonvogvYOtjVDAmO4UERUPdMpXaGTmmxcIsW.3ie"),
[]byte("$2a$10$5oN327Lkz3MYKNPzvHc6jeLhmSbk028nk4xaX.jScjOTsm4v/BBGy"),
[]byte("$2a$10$1lLx7cahonjUkit4/.hyY.0ZiQ.zPzO8Zrpjon/m/cRYOyfakSXcC"),
[]byte("$2a$10$RBCpFYfTpRMBOqx8w/OsnOhMgRNgFjAEXDzXcZeeUtYTcJGi3cMpu"),
}
func main() {
triedPassword := []byte("Utauyo!!MIRACLE")
errSum := 0
for i := 0; i < 10; i++ {
for _, hash := range hashes {
err := bcrypt.CompareHashAndPassword(hash, triedPassword)
if err != nil {
// NOTE: この書き方だと通常のエラーも取得してしまうように見えるが,このテストケースに対しては正しく2^10回のハッシュ化計算は行われていることは前もって確認済み
errSum += 1
}
}
}
fmt.Println(errSum, "times hash calculated")
}
import bcrypt
hashes = [
"$2a$10$Rvrp.PkB.pnvmXkbu7IYvuglQhJ.kAGJG/.rkCgiDbC1JCEyP7Avq",
"$2a$10$mrNWPjlGFqRPbHmzybgJye90m7aUL12f0ZaEmzMBZ2rOfpmba23qO",
"$2a$10$gIdUsTtTLfjmYvqwDtXn5OqJYhc1KJ8om6Bd0U1tXIMg/XBUHl3eC",
"$2a$10$7CmMBfKnT8uhIjzsKM6UNedIl/3j2RoWUF1PS8ffxWEmcqxHTEGVq",
"$2a$10$EFQoyhODmuceu8pvbLh6xuY/7H8c13H1K3RQbbdkN9d6NOtcBYMjW",
"$2a$10$Vlb.G1.FpNJ3WoofH3cUFOVj82JuTDZqqwyw3xue/NcAklfIsr0.K",
"$2a$10$orKV306C4zGufGHakwIHJ.Nmo.F/rWOuCcYwa2KW8m8iwq4lG9n.u",
"$2a$10$LIbJuwpr2SE7kGkPUYFdquoBkC2Zl031lfEYrtqU1kCv0YSeiUnea",
"$2a$10$a3f9VNnWQZEREtxMLY4zHer0cRvVQhfeYSs7zmKzpnZNGYbVzCAjW",
"$2a$10$fp6Yv2caT6iiS2nnVwvfH.wvU4VUaKrIrrE6mlNrYvckudVQCDQSu",
"$2a$10$TG3dc6r3RTEvUwzaAcxv/OmlTyzcEMoBpwxzo/mCDknyTkYXvVLc2",
"$2a$10$2C4XMikdJ8.fcCDnGE5RyOgbnX7PnM32MfLqMjXs.ZNFLNeovvggy",
"$2a$10$vGqBv1S6hc.AcQXrH1L8Lews7KDYp/Yq.Jx8aucBxpcnoH4TpC/1a",
"$2a$10$QSXt7XqC89sXNoAAJ8cBz.j2PmtYeJRdjvSwvaBv5DWs54YRGgVAq",
"$2a$10$Hu3NJf8evtUCP8bk7Jsc3egiqtV3MUREkSozai.wOfX/E86e2Ji8u",
"$2a$10$m0qtpr3YjC4nCWHT9dyRqu6NGpOUg7mD5N8U.zhH6O4jpzX03WDYm",
"$2a$10$5n/BlMBOh8HSIkonvogvYOtjVDAmO4UERUPdMpXaGTmmxcIsW.3ie",
"$2a$10$5oN327Lkz3MYKNPzvHc6jeLhmSbk028nk4xaX.jScjOTsm4v/BBGy",
"$2a$10$1lLx7cahonjUkit4/.hyY.0ZiQ.zPzO8Zrpjon/m/cRYOyfakSXcC",
"$2a$10$RBCpFYfTpRMBOqx8w/OsnOhMgRNgFjAEXDzXcZeeUtYTcJGi3cMpu",
]
tried_password = "Utauyo!!MIRACLE"
err_sum = 0
for i in range(10):
for hash in hashes:
if not bcrypt.checkpw(tried_password.encode("utf-8"), hash.encode("utf-8")):
err_sum += 1
print(err_sum, "times hash calculated")
require 'bcrypt'
hashes = [
"$2a$10$Rvrp.PkB.pnvmXkbu7IYvuglQhJ.kAGJG/.rkCgiDbC1JCEyP7Avq",
"$2a$10$mrNWPjlGFqRPbHmzybgJye90m7aUL12f0ZaEmzMBZ2rOfpmba23qO",
"$2a$10$gIdUsTtTLfjmYvqwDtXn5OqJYhc1KJ8om6Bd0U1tXIMg/XBUHl3eC",
"$2a$10$7CmMBfKnT8uhIjzsKM6UNedIl/3j2RoWUF1PS8ffxWEmcqxHTEGVq",
"$2a$10$EFQoyhODmuceu8pvbLh6xuY/7H8c13H1K3RQbbdkN9d6NOtcBYMjW",
"$2a$10$Vlb.G1.FpNJ3WoofH3cUFOVj82JuTDZqqwyw3xue/NcAklfIsr0.K",
"$2a$10$orKV306C4zGufGHakwIHJ.Nmo.F/rWOuCcYwa2KW8m8iwq4lG9n.u",
"$2a$10$LIbJuwpr2SE7kGkPUYFdquoBkC2Zl031lfEYrtqU1kCv0YSeiUnea",
"$2a$10$a3f9VNnWQZEREtxMLY4zHer0cRvVQhfeYSs7zmKzpnZNGYbVzCAjW",
"$2a$10$fp6Yv2caT6iiS2nnVwvfH.wvU4VUaKrIrrE6mlNrYvckudVQCDQSu",
"$2a$10$TG3dc6r3RTEvUwzaAcxv/OmlTyzcEMoBpwxzo/mCDknyTkYXvVLc2",
"$2a$10$2C4XMikdJ8.fcCDnGE5RyOgbnX7PnM32MfLqMjXs.ZNFLNeovvggy",
"$2a$10$vGqBv1S6hc.AcQXrH1L8Lews7KDYp/Yq.Jx8aucBxpcnoH4TpC/1a",
"$2a$10$QSXt7XqC89sXNoAAJ8cBz.j2PmtYeJRdjvSwvaBv5DWs54YRGgVAq",
"$2a$10$Hu3NJf8evtUCP8bk7Jsc3egiqtV3MUREkSozai.wOfX/E86e2Ji8u",
"$2a$10$m0qtpr3YjC4nCWHT9dyRqu6NGpOUg7mD5N8U.zhH6O4jpzX03WDYm",
"$2a$10$5n/BlMBOh8HSIkonvogvYOtjVDAmO4UERUPdMpXaGTmmxcIsW.3ie",
"$2a$10$5oN327Lkz3MYKNPzvHc6jeLhmSbk028nk4xaX.jScjOTsm4v/BBGy",
"$2a$10$1lLx7cahonjUkit4/.hyY.0ZiQ.zPzO8Zrpjon/m/cRYOyfakSXcC",
"$2a$10$RBCpFYfTpRMBOqx8w/OsnOhMgRNgFjAEXDzXcZeeUtYTcJGi3cMpu",
]
tried_password = "Utauyo!!MIRACLE"
err_sum = 0
for i in 0..9 do
for hash in hashes do
if BCrypt::Password.new(hash) != tried_password
err_sum += 1
end
end
end
p(err_sum, "times hash calculated")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment