2017-05-01から1ヶ月間の記事一覧

GolangでHMAC-SHA256署名する

APIの認証でHMAC(Hash-based Message Authentication Code)を使用したいことがあります。 HMACはその名の通り、あるhash-basedなメッセージ認証符号で、メッセージと秘密鍵をもとに生成されます。 今回はハッシュ関数にSHA256を用いて、HMACしてみます。 実…

GolangでMiller-Rabin素数判定法を実装してみる

背景 Wikipedia にも記載されていますが、 Miller-Rabin素数判定法は 与えられた数が素数かどうかを判定する素数判定アルゴリズムの一種で、乱択アルゴリズムです。 フェルマーテストでは、以下のフェルマーの小定理を用いて 素数判定を行いますが、カーマイ…

Atomでconfig.fishをハイライトさせる

zshからfishに移行している最中にconfig.fishがAtomでハイライトされていなかったのでさせました。 単純に拡張子とscope nameを対応させるだけですが、fishを検索ワードにしてると意外と引っかからなかったのでメモ書きとしてまとめておきます。 事前準備(fi…

GolangでCuckoo Hashingを実装してみた

2017/5/27 修正 int64型であるkeyを[]byte型へconvertする際にhasher.Write([]byte(string(key)))ではうまくいかないため以下のように修正しました。 b := make([]byte, 8) binary.LittleEndian.PutUint64(b, uint64(key)) hasher.Write(b) 背景 BloomFilter…