近況
さいきんはあんまり gerry してません。
って書こうと思ったけど昨日してたわwwwwwwwwwwww
さいきんはあんまり gerry してません。
って書こうと思ったけど昨日してたわwwwwwwwwwwww
考えてみるとほとんどパスワードを保存するコードを書いたことがない。現状のベストプラクティスを知らなかったのでメモ書き。
現状では bcrypt 使うのがいいみたい。b は Blowfish の b。
Modular Crypt Format というフォーマットとコンパチの出力をする。crypt (3) はもともと DES の短いフォーマットだが、弱すぎたため md5 拡張なりSHA512 拡張などが存在している。(htpasswd でも使われているので見たことある人は多いだろう)
これの Blowflish を使ったものが bcrypt で、prefix に $2$, $2a$, $2x$, $2y$ $2b$ がついている。prefix の違いはバージョンの違いであり、現在は 2b を使うのが良い。ストレッチング回数も出力に含まれるので、あるとき急にストレッチング回数を増やしても特に問題はない。
このフォーマットは出力に salt も含むので、生成された MCF はそのまま保存すれば良い。
Blowfish 自体は一方向ハッシュ化アルゴリズムではなく共通鍵暗号化アルゴリズム。処理速度が早く鍵長がある程度可変でライセンスフリーというのが特徴。
bcrypt は "OrpheanBeholderScryDoubt" という決まった文字列を 64回 Blowfish で暗号化する。 このとき暗号に使う状態 (暗号化の鍵) を password や salt から初期化する。この初期化にも Blowfish の暗号化が使われる。
暗号化済みテキストに鍵の情報が入ることはない (もしあったとしたら暗号化アルゴリズムではない) ので一方向になる。
また "OrpheanBeholderScryDoubt" に復号化できるキーを探す (クリブ / plain text attack) も Blowfish では難しいため、実質的にブルートフォースアタックしかできない。
そもそも Modular Crypt Format のものは des crypt ですら salt も出力に含んでいる。ググると「bcrypt なら salt は別に保存する必要がない」と書いてる人がいたりする。間違いではないが正しくはない。
Modular Crypt Format のいくつかのパターンを引用する
des_crypt : {salt}{checksum}
md5_crypt : $1${salt}${checksum}
bcrypt : $2a${rounds}${salt}{checksum}
sha256_crypt : $5$rounds={rounds}${salt}${checksum} ( https://passlib.readthedocs.io/en/stable/modular_crypt_format.html から一部をコピペ)
そもそも現代ではプラットフォーマーでなければパスワードを保存しなければならないケースがかなり少ない。OAuth などで外部サービスに認証を委託したほうがはるかに楽だからだ。パスワードを保存するということはそれ自体が難しいうえに、パスワードリセットや2段階認証なども含めてトータルで抜け道がないか考える必要がある。
ref.
常三郎 東秀石 台付鉋 白樫 60mm cho45
本職用 (すぐ使えないやつ) の60mmのカンナを買ってみたので仕込み (初期設定) した。ググったらやりかたでてくるし動画で説明してる人もいて良い時代。大工道具は基本的に初期設定が必要なものが多い。自分用の .vimrc 書くようなもんだ。
自分でやりかた説明してもしょうがない (しばらく二度とやらないだろうし、メモにしても将来結局ググりなおす) ので写真だけ
60mm (寸四) でも結構デカい。自分は手のサイズ小さくないほうだと思うけど持つと結構つかれる。これ以下のサイズだと小鉋になる。
新品は刃を叩いても出ないようになっているので、当たってる表なじみを削る。同様に抑え溝も削る。
表なじみはちょっとしか削ってない。抑え溝は結構 (0.2mmぐらい)は削ったかな
定規あててみた感じではガタつきもなく、削ってあって直す必要なさそうだったのでそのまま。
裏押し難しい……一応鏡面まで持っていったがこれで十分なのかよくわからない。
しのぎ面。軟鉄部分は鏡面にならないのか??と不安になったが、どうやら曇った感じであってるっぽい。鋼部分だけ鏡面になれば良いようだ。
鉋や鑿には裏に凹みがついている。これを裏すきという。なぜ凹みがついているかというと、裏の平面出しを楽にするためである。裏すきに対して、すいてない平面部分のことを裏押しという。(片刃の和包丁も同様に裏すきがある)
片刃の刃物は裏に完全に平面が出ていることが要求される。しかし実際に裏を全て平面にしようとすると、硬い鋼面であるうえに削る面積が大きく、途方もない時間がかかってしまう。
そこで、裏すきを入れることで、平面を出す必要がある部分を刃のごく近くに限定し、すばやく平面を出せるようにしてある。
鉋と比べると鑿はベタ裏でも問題がない。というのも鉋と比較すると鑿は刃の面積がそもそも狭いため、ある程度ベタ裏でも現実的な時間で平面が出せるからである。もちろん鑿の大きさにもより、大きい鑿ほど細い裏がついていなければ研ぐのが難しくなる。
裏すきに限らず、刃物類は「研ぎやすさ」の観点が大事になっている。硬い鋼と軟鉄を貼り合せて刃物を構成しているのも研ぎやすさに寄与する。すべてが硬い鋼だと大変な労力がかかってしまう。
ミニ鉋を持ってたけど表面仕上げには使ってなかった (削り幅が多い調整用途が多かった)。が、実はサンディングするより鉋がけで仕上げたほうがいいのではないかと思いはじめた、というのも
というメリットを感じたからだ。特に粉が舞わないのと静かなことは作業場を確保できない場合かなり嬉しい。
研ぎと調整さえ覚えればいい気がしているので試行錯誤している。
なかなか見た目も可愛いのでエンクロージャーから作りなおすというほどでもない。吸音材(ホワイトキューオン)をいれるのと、回路定数だけ見なおすことにした。
アンプICは 8002A CK2T24 1N と刻印されている。http://www.shenzhensum.com/products/datasheet/8002%282.0W%29.pdf これとかかな
基板上の入力カップリングコンデンサは LCR メータで測ると 0.1μF。入力抵抗は 682 =6.8kΩ。 fc = 1/(2πRi*Ci) で、そんなわけで、入力は234Hzのハイパスフィルタを構成してしまっている。
フィードバック抵抗は 223 = 22kΩ。Av =2*(Rf/Ri) で、約6.5倍の電圧ゲイン。
入力定数のおかげで低音がかなりカットされている。これはこれで別に悪くはないけど、試しにもうちょっと低音まで出せるようにしてみた。やったことは 4.7μF を並列に繋げるだけ。チップコンなら単に積層してあげるだけなので難しくはない。そもそもこういうカップリングにセラミックコンデンサを使うのはよくない (DCバイアスでかなり容量が変化する) みたいだけど、あんまこだわらない。
2013年に中古で買ったイトーキのプラオチェアがもう限界っぽい。気がつくと赤っぽいオイルが床に滴っていることがある。
売りに出る前何年使われていたかはわからないが、うちにきてから6年経過しているので、まぁしょうがないという感じはする。
次買うならさすがに新品を買いたいかな。しかし家具の事情で椅子を買っても搬入するのが難しいので困った……
Android Studio のダウンロードページから「コマンドラインツールのみ」を選んでダウンロードしてくる。Android Studio が必要なら別に全部入りでもいい。
このコマンドラインツールには共通で使う最低限のものしか入ってない。
REPO_OS_OVERRIDE を指定しつつダウンロードすると、動かしているプラットフォーム以外のバイナリも取得することができる。例えば Mac OS で Linux のバイナリが欲しいときなどに使える。
REPO_OS_OVERRIDE=linux ./sdkmanager --sdk_root=/tmp/linux --verbose "build-tools;28.0.3"
こうすると /tmp/linux/build-tools/28.0.3 とかにツールがダウンロードされる。/tmp/linux/build-tools/28.0.3/lib64 以下の共有ライブラリも実行に必要なので注意