「ハッシュ値」を含む日記 RSS

はてなキーワード: ハッシュ値とは

2024-09-15

anond:20240915192726

検索機能だって改善してもらったんだし、

投稿内容をハッシュ化して保存し、直前のハッシュ値と一致したら投稿拒否するだけでいいんだよ。

2024-08-13

anond:20240813161724

ランダム値なんて乱数のシード値から作ってるだけやで

乱数のシード値をクラサバで同期させて、クライアント改ざんがあったらハッシュ値で検出すればいいやで

2024-08-06

anond:20240806001637

オーディエンスが「この抽選結果は納得だ」と感じることができる電子的な乱数生成方法とその演出は何か」

元増田で述べたような方法が、不正が入り込む余地がないと外部から判断できる電子的な乱数生成方法で、

それを使って神経衰弱のように大量のカードを裏向きに伏せて、その中から1枚を選ぶというのが

演出として納得度が高いと思う。

 

カードを選ぶ時点で、裏向きのカードを生成する乱数シードは確定しているので

選んでからカードの裏面を変更したということもありえない。

(ハッシュ値性質上、天文学的に運がよければ選んでからカードの裏面を変更できることもありうるけど、それは隕石が頭に当たって死ぬ以上に無視していい確率だ)

anond:20240805174429

こうだよ。

1.乱数シードのハッシュ値を事前公開する

2.その乱数シードに基づいた乱数生成をする

3.乱数使用が終わったら乱数シードを公開する。

4.ユーザは公開された乱数シードのハッシュ値が、事前公開されたものと一致することを確認できる。その乱数シードで、2.の乱数生成が再現できることを確認できる。

 

実際には、全ユーザ共通乱数シードとユーザIDを加算して乱数シードにするみたいな仕様になると思う。

ハッシュ値という概念安全パスワード認証データの保存やブロックチェーンの肝でもあるので、これを機に理解しとくといいよ。

2024-07-04

anond:20240704004337

「生のパスワードで保存されてたり、DBの保存はハッシュ値でもその他のところに生のデータログが残ってる可能性は十分あるって話」

日本語読もうなあ

anond:20240704001932

sha512が割れるかどうかじゃなくて、生のパスワードで保存されてたり、DBの保存はハッシュ値でもその他のところに生のデータログが残ってる可能性は十分あるって話

2024-07-01

一周回って、パスワードを全部適当ハッシュ値にして自分記憶しないで、ログイン必要ときパスワード登録する方法とかどうだろう

パスワードはすべて使い捨て

これであれば少なくともパスワード起因の乗っ取りはなくなるよね

メール盗聴されたら終わりとかあるけど、それはもはやパスワード以前の問題だしね

2024-04-25

anond:20240425224100

ビットコインマイニングは、ビットコインネットワークトランザクション確認し、新たなビットコインを生成するプロセスである

これは数学的な問題を解くことによって行われる。具体的には、以下のようなステップが含まれる:

1. 新しいブロック作成マイナー未確認トランザクションから新しいブロック作成

2. ハッシュ計算マイナーは新しいブロックハッシュ計算ハッシュ関数は、任意の長さのデータを固定長のハッシュ値に変換。ビットコインでは、SHA-256というハッシュ関数が使用される。

3. 難易度ターゲット比較計算されたハッシュ難易度ターゲット以下であるかどうかを確認難易度ターゲットは、ネットワーク全体のマイニングパワーに基づいて調整される。

4. ブロックの追加: ハッシュ難易度ターゲット以下であれば、そのブロック有効とされ、ブロックチェーンに追加される。そして、そのブロック作成したマイナーは新たなビットコインブロック報酬)とトランザクション手数料を受け取る。

これらのステップを繰り返すことで、ビットコインマイニングは行われる。

このプロセス競争的であり、最初問題を解いたマイナーけが報酬を受け取ることができる。

これにより、マイナーは常に最新のハードウェア効率的な電力供給を求めるインセンティブ生まれる。

2024-03-08

ビットコインって本当にゴールドなの?

金はだいたい誰が見てもきれいだと思うし価値理解できるけど、

0が並んだハッシュ値を「きれい」だと思う人ってかなり限られると思うのだけど。

2023-12-17

プログラミング初心者です。以下のコードの誤りはなんですか

僕はプログラミング歴2週間の初心者です。キーと値を入力できるデータベースを作っています

以下のコードを実行してデータを追加し続けると、一定サイズを超えるとエラーが出てしまうみたいです。

理想は、データが追加された後にサイズが足りなくなったら動的に自動拡大されることです。

もし詳しい人がいたらご教示お願い致します。

import sys
import os
import mmap
import hashlib

def h(x):
    return int(hashlib.sha512(x.encode()).hexdigest(), 16)

def create_db(filename):
    with open(filename, 'wb') as f:
        f.write(b'\0' * 1024 * 1024)  # 1MBの空ファイル作成

def set_key(filename, key, value):
    with open(filename, 'r+b') as f:
        mm = mmap.mmap(f.fileno(), 0)
        pos = h(key) % mm.size()
        while mm[pos:pos+1] != b'\0':
            pos = (pos + 1) % mm.size()
            if pos == h(key) % mm.size():
                f.seek(0, os.SEEK_END)
                f.write(b'\0' * mm.size())  # ファイルサイズを2倍にする
                mm = mmap.mmap(f.fileno(), f.tell())  # ファイルサイズを反映させる
                pos = h(key) % mm.size()  # ハッシュ値を再計算する
        data = key + '\0' + value + '\0'
        data = data.encode()
        mm[pos:pos+len(data)] = data
        mm.close()  # mmapオブジェクトを閉じる

def get_key(filename, key):
    with open(filename, 'r+b') as f:
        mm = mmap.mmap(f.fileno(), 0)
        pos = h(key) % mm.size()
        while mm[pos:pos+1] != b'\0':
            end = mm.find(b'\0', pos, mm.size())  # 第2引数と第3引数指定する
            if end == -1:
                end = mm.size()
            if mm[pos:end].decode() == key:
                pos = end + 1
                end = mm.find(b'\0', pos, mm.size())  # 第2引数と第3引数指定する
                if end == -1:
                    end = mm.size()
                value = mm[pos:end].decode()
                mm.close()  # mmapオブジェクトを閉じる
                return value
            pos = (pos + 1) % mm.size()
            if pos == h(key) % mm.size():
                break
        mm.close()  # mmapオブジェクトを閉じる
        return None

def main():
    cmd = sys.argv[1]
    if cmd == 'create':
        create_db(sys.argv[2])
    elif cmd == 'set':
        set_key(sys.argv[2], sys.argv[3], sys.argv[4])
    elif cmd == 'get':
        print(get_key(sys.argv[2], sys.argv[3]))

if __name__ == '__main__':
    main()
 

2023-10-05

[][] 2023-10-05 廃人日記へ移行

異常な幻想の網に捕らわれ、PTSDの闇に沈んでおり、仕事から離脱余儀なくされております

その幻想は、あまりにも鮮烈であったため、現実か夢か、いまだに疑念が拭えぬものとなりました。

認識の糸が紡ぎとどけず、安定した現実がどこに棲むのか、それを問い詰めざるを得ません。

安寧な現実の有り難みを噛みしめております次第でございます

近頃は、数学の奥深さに魅了され、勉強に没頭しております

思考結晶抽象的な形に仕立て上げ、それを操ることは、極めて魅力的であり、しか財政的な負担は一切生じません。

傷病手当金恩恵に浴しており、感謝の念に堪えません。その支給期間が続く限り、職場の扉を閉じる覚悟でおります

この転向した日記は、"勉強日記"のカテゴリーからの移行でございます

"勉強日記"という名は、絶え間ない学びを要求されるという、何とも重苦しい響きがあったため、精神的な疲弊を感じておりました。

"廃人日記"の名に変えることで、統合失調症患者が日々の苦闘を語る場として、うってつけでございます

真正性保証のために、特別プロセスにより、内容にハッシュ値を刻み付けることに決意いたしました。

他のブログプラットフォームも一縷の望みを託しましたが、結局、匿名性の高いダイアリーが最も筆が進むようでございます

私は、被害妄想に囚われると、コンテンツを一掃する衝動に駆られますが、匿名ダイアリーはその記録が永遠に残るという、安心感をもたらしております

hash: 38d8d7e05e9f40a04eec8e6da9f768a3

2023-07-10

手動でビットコイン採掘してる

ビットコインのECDSAってデジタル署名技術に使われてる楕円曲線暗号て平文を80桁のハッシュ値に変えてて、手動でもできる。

暇つぶしハッシュ値だして0がいっぱいつくまで延々と計算するの楽しい

2023-05-13

AI生成物の引用ってどうやればいいの?

引用元として「ChatGPTで○○と質問した時の回答」と書いても、同じ質問しても同じ文章で回答してくれないか読み手確認できないでしょ。

画像生成AIも同じプロンプト、同じハッシュ値、同じモデルでも同じ画像を生成してくれないでしょ

それがほんとにAI生成物から引用か分からない。自己申告にしかならない。

2022-12-04

Chat.OpenAIゲキヤバ。まじでちょっとした処理はググる必要なくなった

俺:

javascript言語で、現在時刻のタイムスタンプからMD5ハッシュ値を出力する関数、timeToMd5 を作ってください

JavaScriptでは、次のような関数作成することができます

function timeToMd5() {
  // 現在時刻のタイムスタンプを取得しまconst timestamp = Date.now();

  // ハッシュ値を出力するために、MD5ライブラリロードしまconst md5 = require('md5');

  // timestampを文字列に変換し、それをMD5ハッシュ値に変換して出力しまconst hash = md5(timestamp.toString());
  return hash;
}

このような関数作成することで、現在時刻のタイムスタンプからMD5ハッシュ値を出力することができます

ご参考までに。

俺:

nodeコマンドで実行しましたが、"Error: Cannot find module 'md5'" というエラーになってしまいました。なにか解決方法がありますか?

質問のように、JavaScript定義した関数を実行すると、"Error: Cannot find module 'md5'" というエラーが発生しているようです。

このエラーが発生する原因は、JavaScriptコード内で、MD5ライブラリロードしようとしたときに、そのライブラリインストールされていないためです。

JavaScriptコードで、MD5ライブラリを利用するには、まず、そのライブラリインストールする必要があります

インストールするには、次のように、nodeコマンドを実行します。

$ npm install md5

このコマンドを実行することで、MD5ライブラリインストールされ、JavaScriptコードから利用することができるようになります

また、JavaScriptコードを実行するには、次のようにnodeコマンド使用します。

$ node [JavaScriptファイル名]

このようにすることで、JavaScriptコードを実行することができます

ご参考までに。

俺:

ありがとうございます。実行できました😁

おめでとうございます!ご質問いただいた内容について、正しく解決されたようで嬉しいです。

しまだご質問があるようでしたら、お気軽にお問い合わせください。今後とも、Assistantをご利用いただけますよう、よろしくお願いいたします。

2022-11-30

ボクの使ったCS(ジジイの思い出話) anond:20221129085814

まぁ、下っ端プログラマには要らないだろうけど、いわゆるシステムエンジニアとかアーキテクトとか言われるレベル仕事するには、なるべく知っとかないといけないよね。

オレの場合は、大学はかろうじて理系一角だったけど、学問的にコンピュータサイエンスを学んだことはなくて、某IT会社でなかば業務上必要に迫られ、なかば趣味的な興味本位もありで、ちょっとずつ勉強した。

で、もう20年くらい前だし、すでに廃止されてる(と思う)ので、守秘義務違反とかの面倒なことにならなそうだと想定してぶっちゃけると、大手携帯会社ショップで各店舗独自プロモーション打ったりするためのWebシステムの開発に関わったことがある。

顧客の(および自分とこの)エライ人なんかにシステム設計根拠(この方式が最善なのか?もっと安く早くやれる方法はないのか?などなど)を常に問いかけられ、説明説得しなきゃならない。そこでコンピュータサイエンスに基づいて理路整然と話をすると、ちゃんと信頼してもらえるし、納得してカネ払ってもらえるw

そこで使ったのが、以下のような各種理論だ:



などなど... 自分史上最高に残業させられたこ仕事やってた年の年収は、900万円台おしくも1000万には届かなかったねぇw

 --追記--

コンピュータサイエンスがらみの思い出でもう一個面白い(とオレが思う)ネタがあるので、ついでに書いとこうw

これは、上で書いた携帯会社システムよりだいぶ前のことになるが、とあるグループウェアの開発に関わってたときメールFAXに向けて出力するドライバを書いたことがある。昔のことなのでオープンソースあんまり普及してないし、タダでお手軽に使えるライブラリが見つからなかったので、「車輪の再発明」っぽいけど自分でハフマン符号化によるデータ圧縮アルゴリズム勉強して作ったのだ。

Win32APIとか呼び出して、ビットマップテキストを描画させたとこからドットをちまちま数えて、白のドットがいくつ続いてたらこコード、黒がいくつ続いてたらあのコード...って可変長のビットパターンをつなぎ合わせてファイルに書き出す...みたいな。これが理論通りにうまいこと動作して、FAXから文書が出てきた時はとっても楽しかったw

2022-05-06

[]RStudio最新版インストールするスクリプトを書いた(Debian/Ubuntu)

RStudioがPCから気がついたら消滅していたので何回もやり直すのが面倒で書いた

Debian/Ubuntubash

コメントアウトをいじればFedoramacOSでも動くと思う

https://pastebin.com/HiPqLVq7 (6/4 shコマンドでも動くように修正 以前はbash hogehoge起動していたので動作確認していなかった)

エラーでここに貼れなかった

実行したディレクトリダウンロードする

パッケージインストールするのでsudoとかが必要

必要パッケージについて(コメントアウトオフに)

util-linux(rev) libxml2-utils(xmllint) gpg curl coreutils(sha256sum)とR関連

  1. rev まずデフォルトで入っている 文字列を逆さまにするコマンド
  2. xmllint 同上 xpathを扱えるコマンド(xmlを扱うコマンド) Debianでは入っていなかった
  3. gpg 同上 署名関連 これがないとインストール出来ない環境もある
  4. curl 同上 getリクエストとかを送れる bashだけでHTTPとかを送るのは苦痛なので
  5. sha256sum 同上 ハッシュ値確認
  6. R関連 これがないと動かない
コード関連備考
xmllint
echo "$HTML" | xmllint --nowarning --xpath hogehoge --html - | hogehoge

こうしないとxmllintがエラーでhtlmなどをうまく読み取らない

sed 's/href="//g;s/"//g;s/\s/\n/g;s/^.?$//g;s/^\n//g'

href="hogehoge"の形で出てxmllint内で除去出来なかったのでsed妥協

hrefが1回しか出ないのでひとまとめにできそうだが面倒なので分けた

この書き方なら複数回出ても除去できるはず

先頭の謎のスペースの除去が面倒だった

sha256sum
echo "$HASH"  "$FIELNAME" | sha256sum --status -c ;echo $?

スペースが2つないと書式で怒れられてハッシュ値が合っていてもsha256sumが終了ステータス0で正常終了を返してくれない

使ったツール

VScodium

ShellCheck

https://open-vsx.org/vscode/item?itemName=timonwong.shellcheck

XPath Helper

https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl

最後

zenn.devに書こうか迷ったがどちらの方が良かったのだろうか…

ダウンロードしたサーバーがやられてるならハッシュ値改ざんするだろうgpgで確認しないと意味ないでしょとかsudoでやったらディレクトリがとか色々ガバあるからかいい感じに改良して

参考

https://cran.rstudio.com/bin/linux/debian/

https://www.rstudio.com/code-signing/

https://www.rstudio.com/products/rstudio/download/

2022-04-19

10年以上同じPCを使っていたが、25,000円で新調した

1か月ほど前まで初代第1世代Core iのPCをほぼノーマルで使っていたが、Windows肥大化(*1(本増田最後に参考webページ記載。以下同様))のせいかweb閲覧やExcel操作程度の作業でも引っかかりを覚えるようになったり、Windows11ブームに煽られてセキュリティ関連の記事を読み古いCPUには脆弱性が付き物だと知った(*2・3・4)り、あれこれあったためPCを新しくすることにした。

その際に色々な知見を得て情報更新ができたため、日記帳リンク集として増田に残しておくことにした。極少数の人にしか役に立たないであろう文章だが、体験談の類として暇つぶしに読んでもらえれば幸い。ただ、過去PC事情を懐古したりするのが目的なら、数年前にホッテントリ入りした別の記事(*5・6)を読む方が有意義かもしれない。

改装作業にどう臨んだか

まず、パーツの買い方を3種類に大別して検討した。

この前段階で格安中華ミニPC(*7)も候補に挙げていたが、拡張の厄介さや商品到着までの時間の長さを難に感じて選択肢から外した。

● H610M/BとローエンドCPUと8GB DIMM×2

今新しく自作PCを組むなら鉄板構成だと思う。現在相場では、M/B 13k円、Celeron 7k円、DIMM2枚組 6k円、SSD 200GB 4k円で約3万円くらいになるだろう(*8・9・10)。構成品のどれかを中古にすれば2万円台前半で抑えることもできそうだ。

しかしながら、最近まで骨董品我慢できた身には過剰スペックになりそうだという懸念逆張り志向のせいでRyzen APUに惹かれたためとで、この組合せは除外した。

中古パーツ1点買い

時機を見極めて個々のパーツを買えれば、安く挙げることができる方法だろう。

だが、動作不良品リマーク品(*11)・その他の不動品(*12)等を掴むリスクやピン折れ曲り(*13)他機器不良への対処を避けるため、この組合せも選ばなかった。

M/B+CPU+αのセット・ベアボーンキット・本体中古で購入

M/BCPU・ビープスピーカー・電源があれば動作検証可能だ(*14)。そのことは前提知識として通用してるだろうと期待し、ジャンクな出品物・者を弾けば少なくとも直ぐに判明するような不良品を掴むことは避けられるだろうと考えて、セット品を軸にパーツ調達することにした。

ただ、個別のパーツだけ欲しいと思う人が多いせいか希望に叶う出品は少なかった。値段や特定のパーツへのこだわりは捨てて条件をだいぶ緩くしたが、それでも購入作業を終えるには結構時間がかかった。

個々のパーツをどう検討たか

作業の結果以下のパーツが手に入った。これら以外にも試用して直ぐ売却したものがあるが、その分は少々の損失で済んだため、実質合計費用は25k円+10k円。

● 電源

元の電源が10年以上持ったので、5年前の製品なら後5年は使えるだろうと考え、中古で済ませることにした。

参考になるまとめ記事を元に、経年による劣化が小さいと思われる、電圧電流の波形が綺麗な製品(*15)を候補にした。5年以上前に発売された商品を1年少々しか使っていない状態良好品だと嘯く詐欺師フリマには跋扈しているが、そういう輩を除外しても選択肢が十分にあるのは幸いだった。プラグイン電源という危険そうな製品(*16)以外に無難選択肢が無かったのは、老害増田には難だったが。

余談だが、電動ブロワーは電源の清掃にとても役立った(*17)。騒音問題にならない環境の人には是非お勧めしたい。

● ケース・M/B

大型のファンを備えた電源ユニットをケース下部に置く組み方が主流になって久しいようだ(*18)が、冷却や静音にこだわる必要が無いのでケースは流用することにした。ただ、電源LEDそのままで機能しないので、オス-メスのジャンパワイヤー(デュポンケーブル)をフリマで買ってピンとコネクタをつないだ(*19)。

マザーボードについては色々調べたが、8ピンのATX 12V電源コネクタ(*20)が一般化して久しいことや、フェーズ数の増加(余談だが、I/O電圧とコア電圧が異なるデュアルボルテージは、30年近く前にモバイルP54Cで初めて採用された)(*21・22)といった電源回りのことで特に知ることが多かった。光物(*23)はあまり興味が無いのでほぼスルーした。

CPUメモリ

RyzenIntel Coreもどちらも魅力的だと思った(*24・25)が、結局はAMDで組むことにした。そこそこのGPUを省電力で使えることが大きかった。

メモリは多少勉強した(*26)つもりでパーツ選定に着手したが、チップセットの16Gbitチップ対応事情(*27)を全く把握していなかったため、相性問題にぶつかって最初に購入したパーツセットを買換えることになった。容量について言うと、16GBだとたまに心許なくなるが32GBだと過剰という感がある。Intelなら24GB(8+16の2枚)載せて16GB分をデュアルチャネルモードで使える(*28)ので、その点は良いなとも思う。

ストレージ光学ドライブ

SATA SSDでも体感速度は悪くない(*29)という言説を見て、安く手に入ったSSDで十分と判断した。記録方式TLCかどうかといった商品選択の時に普通ポイントになる点(*30)は、次に買換えたくなった時に気にかけようと思う。

光学ドライブも電源ユニットと同様、本来は5年程度で買換えるべき製品とされている(*31)が、それはそれとして、電源と同様の理由で5年くらい前の中古品を探そうかと思って調べてみたら、M-DISCという規格(*32)があると知った。対応するドライブメディアを購入すると割高だ、余計に金をかけてまで保存すべきデータはどれだけあるか、そもそも光学メディアの読み書きをする機会はどれだけあるか(*33)等、あれこれ考えた結果光学ドライブは買わないことにした。

サウンド

最近は無音でPCに向かうことが専らなので、USB-DAC排除してHDMIモニタイヤホン出力で済ませることにした。気まぐれに音楽を聴きたくなったらヘッドフォンアンプライン出力につないで使おうと思う。

入力装置

ケースと一緒に死蔵品を引っ張り出した。文字入力を業としない立場なのでキーボードは何でもどうでも良い。

マウスクリックが利き辛くなったので放置してたが、分解修理可能(*34・35・36)だと知ったので実例(*37)を参考に簡単に清掃して使えるようにした。マウスホイール部品交換が必要状態ホイールゴム部分が、加水分解して汚れてたので重曹で洗った(*38)ら、完全に溶けてなくなってしまった)なので、そのうちAliExpressで補修品(MX300適合品ではないが、サイズが同じもの)(*39)を購入しようと思う。

Windowsをどうセットアップたか

初めは旧システムの入ったHDDを新しいM/Bにつないで使っていた。後で中身をSSDクローンしようと考えたが、安物のSSDゆえガンガン書き込むことを必要以上に避けなくても良いなと思い直したので、結局新規インストールすることにした。

Raven RidgeではWindows11アップグレードできない(*40)。だが、Windows11ではGPUが重くなりその対策が未だ無いよう(*41)なので、Windows10のままで良いということにした。

● 旧システムドライブ駆動

Windows7の頃はUEFIで起動しないPCがまだ一般的(*42)だった。このHDDもそういうPCに接続されてたのでフォーマットMBRだった。CSMを有効にすればそのままで起動できるが、そうできるのは古いGPUを使っている時で現行のiGPUではたいてい無効にされる(*43・44)。CSMは頼りにせずGPTに変換して使うのが無難だ。

変換の際はWindows10USB起動メディアmbr2gptを使ったが、ReAgent.xml更新に失敗したというエラーメッセージが出たので、回復パーテーションを弄って(「コンピュータ管理」ではドライブレター付与できないのでdiskpartを使った)修正した(*45・46)。

Microsoftアカウントで常用していたためかライセンスの再認証を求められることも無く、上記問題を除けばほぼすんなりと使用できた。セクターにアライメントのずれが無いかどうか(*47)も調べたが、問題無かった。

新規セットアップ

VMWare上で予行した分も含めて何回もした。セットアップを繰り返した理由は、Administratorを有効にしパスワードを設定しないままメインアカウントを標準ユーザーにしたらAdministratorにログインできなくなって(*48)詰んだり、OneDrive動作選択画面で「このPCにのファイルを保存する」を選択せず「次へ」移動したら戻れなくなった(ドキュメントやピクチャ等のフォルダパスOneDrive指定した後で、再度ローカルストレージに変更するのは割と手間になる)(*49・50)り、システムファイルを移動させようとして次節で説明するようにシステム破壊したりしたためだ。

システムファイルの一部をHDDに移動

SSDの容量節約と書込み抑制のため、ページ、スワップハイバネーションの各ファイルOneDriveフォルダ(ただし、空フォルダマウントしたドライブは移動先に指定できない)・ユーザプロファイルフォルダ下のドキュメント等のフォルダ・AppDataフォルダ下のRoamingフォルダとLocalフォルダの一部・テンポラリフォルダ・ストアアプリフォルダを移動(*51・52・53・54)した。Superfetchはデフォルトで良しとした(*55)。

かつては別アカウントログインしてプロファイルフォルダを全部移動しジャンクションを貼って使うこともできたが、Windows10のあるバージョン以降でそれをするとスタートメニューショートカットやストアアプリ即死する(*56)。一部のシステムファイルが変化するとメニューアプリ全体が損壊判定されるようだ(十分な検証はしてないが、container.datハッシュ値名前になってるファイルを弄ると不味いように感じた)(*57)。こうなるとアカウントを消して再作成する他無くなる。ちなみにCドライブ直下のProgramDataフォルダ等を壊すともっと悲惨で、新規インストールくらいしか回復の手立てが無かった。

おわりに



参考ページ

はてなブックマークされたページにはeidを付記した。

https://b.hatena.ne.jp/entry/1 または https://b.hatena.ne.jp/entry?eid=2(それぞれ、数字部分がeid)のような形式url入力すれば、当該ブックマークエントリーアクセスできる。

タイトル
URL
eid
*1Windows 10バージョンアップを重ねるたびに本当に遅くなっているのか?検証結果はこんな感じ - GIGAZINEhttps://gigazine.net/news/20210622-windows-10-version-slow-down/4704430589992224258
*2Google発見した「CPU脆弱性」とは何なのか。ゲーマーに捧ぐ「正しく恐れる」その方法まとめhttps://www.4gamer.net/games/999/G999902/20180105085/373991174
*3AMDプロセッサ脆弱性セキュリティ企業情報公開--懐疑的見方も - CNET Japanhttps://japan.cnet.com/article/35116106/360332677
*4インテルARMCPU脆弱性「Spectre-v2」の悪夢再び、新たな攻撃手法 | TECH+https://news.mynavi.jp/techplus/article/20220312-2290634/4716634065497432514
*5Sandy Bridgeおじさん」とは何か? : 因画応報http://ingaoho.ldblog.jp/archives/4916067.html362560793
*6ありがとう鼻毛鯖 8年使った鼻毛鯖をついに買い替えました | 日本霜降https://nihonsoukou.com/20181123/18274665750545042615426
*72万円の超格安パソコンGREEN G2」値下げ、高性能CPUに大容量メモリSSD採用仕事でもプライベートでも大活躍 | Buzzap!https://buzzap.jp/news/20220318-trigkey-green-g2-ultra-low-price-pc-happy-price-down-3/4716943171239004674
*812世代インテル Core プロセッサ特集 | パソコンSHOPアークarkhttps://www.ark-pc.co.jp/special/intel-12th-gen-core-series/-
*98GBモジュール | 2枚組 | DDR4 DIMM (288pin) | デスクトップ用 | 通販価格/性能比較一覧 | 価格の安い順 | パソコンSHOPアークarkhttps://www.ark-pc.co.jp/search/?col=3&order=&p1=b21010&p2=c21050&p5=s21010&p6=w11726-
*10〜256GB | M.2 | SSD | 通販価格/性能比較一覧 | 価格の安い順 | パソコンSHOPアークarkhttps://www.ark-pc.co.jp/search/?col=3&order=&p1=b32020&p2=c32024&p5=s32220-
*11やじうまPC Watch中国Intel CPUの偽造品出回る。公式が注意を呼びかけ - PC Watchhttps://pc.watch.impress.co.jp/docs/news/yajiuma/1248215.html4684567815854719490
*12Lenovoに搭載されているAMD CPUベンダーロックが設定されているせいで中古市場が混乱している - GIGAZINEhttps://gigazine.net/news/20220118-lenovo-vendor-lock-amd-cpu/4714151541045747810
*13ASCII.jp冗談ではなく目の前が真っ暗になる恐怖……ピンを曲げてしまったRyzen 9 5950Xの修復を試みる (1/3)https://ascii.jp/elem/000/004/053/4053723/4703873313928579106
*14パソコンが起動しない場合確認方法テックウインド株式会社https://www.tekwind.co.jp/ASU/faq/entry_31.php4666842797243724258
*15自作PC】電源ユニットの選び方を自作経験者がガチ解説する | ちもろぐhttps://chimolog.co/bto-choose-psu/367187040
*16何故プラグインPC電源ユニットコネクタは規格統一されていないのか? - Togetterhttps://togetter.com/li/15640764688976497965880706
*17ブロワーの選び方 | DIY工具紹介部https://diytool.biz/blois170335990
*18“冷却の常識”を徹底検証 - AKIBA PC Hotline!https://akiba-pc.watch.impress.co.jp/docs/dosv/662237.html364049132
*19PCケースのPower LEDケーブル3ピンから2ピンに変換した | TeraDashttps://www.teradas.net/archives/16603/4705898232067265346
*2020ピン ATX 電源は 24ピンのマザーボードに使えるのか – 分かりにくい ASUS マニュアルATX 電源の規格 | Nire.Comhttps://www.nire.com/2009/10/atx-24pin-motherboard-vs-20pin-power/75424033

容量超過のため、anond:20220419200228 に続く。追記もあり。

2022-04-12

私のパスワード

めんどうだから使いまわし全部でいつものを使う

一部サイト文字制限でいつものが使えないのでその場で適当に入れて再ログインのたびに再発行

 

同じパスワードの使いまわしがだめっていうからいつもの+末尾にサービス

 

masuda_no_password+hatena

masuda_no_password+google

みたいな感じ

 

平文保存してるサービスの多さを知って②のパターンだと使いまわし部分が簡単にわかって無意味と気づく

どうせ見られるなら面白いものにしたいと思って

 

getPassword()

 

というプログラムぽいのをパスワードにする

 

サービスアカウントごとには変えておきたい感もあったので引数を使うことにした

 

getPassword("hatena.masuda3")

getPassword("yahoo.masuda1")

 

平文保存してたところでまずみないだろうと気づく

それぞれ別パスワードにしたいけど覚えたくないしパスワードマネージャーは嫌い

ログインIDハッシュ値パスワードにすることにする

 

単純にやると同じことやる人がいそうなので、いつものキーワードログインIDを初期値として誕生日数分繰り返しハッシュ値を求めることにした

使ってる文字種別文字数で文句言われたくないので、ハッシュ値に Aa1_ をプレフィックスにつけて前から要求される最大文字数分切り出したものパスワードにした

 

Aa1_295ae0f759fe6f348346d4ba0484

 

パソコンがあればログインIDといつものキーワードだけで求められるがパソコンがないところでログイン出来ないことに気づく

 

To Be Continued

2022-04-11

パスワードの平文保存

はてなで時々話題になってるけど、受託開発で企業向けなもの作ってると割と普通にある

ユーザ向けよりもエラー起きたときの原因究明とか求められるし本番でもデバッグモードで動かして全ログ出したりとかもある

ログイン出来ないんですけどの回答に「登録されていたパスワードは『password』ですが、入力されたパスワードは『password 』で末尾にスペースが含まれているためにログインに失敗していました」みたいな返答が普通にあるわけ

一般ユーザ向けだとパスワード間違ってるんじゃないですか?リセットしてみてくださいとかで済む

実際自分ユーザとしてなんだったかサービスを使ったときメールが届かないので問い合わせたらこっちのサーバ動作してるのでGoogleとかメールサービス側に問い合わせてくださいみたいなこと言われたことがある

それくらい雑なものでよければいいんだけど変に要求されるからパスワードは平文でログにもパスワードが含まれるとかも当たり前になる

 

あとそういえば一般に公開してるものだけどログインではなくハッシュ値使ったURL個人マイページにしてたりもあった

URL知らないから他の人は見れないけど知っていれば誰でも見れるってやつ

一部の人はありえないとかいいそうだけど個人的にはURL知らなければアクセスできないは非公開と言ってもいい気はしてるけどね

youtube限定公開とか gistプライベートとかでもURL知ってる人しか見れないものを非公開みたいな扱いでつかってるし

URL知ってたら見れるってそれはパスワード知ってれば見れるも一緒

十文字ハッシュ値を見つけるより人によっては10文字もないパスワードのほうが総当りで当たる確率高いよ

 

そんな感じで文化の違いとかを感じたって話

2022-03-21

uuid生成とかハッシュ値比較とか重複しない前提でやってるものごとが釈然としない

0じゃない確率は0じゃないし世界中の端末で試行を重ねたら一個くらい踏み抜いてもおかしくない

2022-03-18

何故パスワード文字数制限があるのか

仮説1:平文保存している

DB設計する場合パスワードカラムを何文字にするか決めなければならない

MySQLならvarchar(10)みたいな感じだ

これを最大2万文字かにできなくもないが、DB容量を圧迫するといった理由で8文字10文字限定していてもおかしくはない

MongoDBのようなオブジェクトDBなら別だがSQL系のDBならこの理由が最もあてはまりそうに思う

同様の理由文字種にも制限をかけてそう(UTF-8とか送られたら面倒)

仮説2:テストができないか

境界テストとしては最大文字数を試さないといけないが無制限だとそれができなくなる

100文字テストするとなると、仕様としては100文字限界ということになって文字制限をかけることになる

ただ、それなら8文字とかで制限している理由として弱い気がする

仮説3:過負荷の防止

制限ということは極端に言うと1GBのパスワードを受け付ける、ということになる

1GBのハッシュ値計算するのはブラウザ側になるのだが、1GBのハッシュ値計算が重くて使えない、という苦情が来るかも知れない

ただ、これも1000文字かにしてしまえば良くて、8文字にしている理由にはならない

仮説4:何も考えていない

ウォーターフォール実装する場合に上位レイヤでの仕様を決めるのはプログラマーでない場合が多く

定型エクセル仕様書に「パスワードの最大文字数」というセルがあって、そこにデフォルトで8という数字が入っている

上位レイヤで仮にそこに100とか1000とかの数字を入れたとき、下位レイヤで何が起こるかわからない

仮に何か起きた場合は書いた人の責任になるから触らない

触らないことで問題が起きてもその人の責任にはならない

まりそこに8と書いた人が現代にいるのではなく、誰も決定していないか文字制限が起きている

下位レイヤでの実装側は平文保存の危険性を十分に理解しているのでハッシュ値(とソルトなど)を格納する

多分、仮説4だと思うが、仮説1でないことを信じたい。

2022-03-17

そもそもハッシュ化の思想を分かってない

暗号化っていうのは

「鍵を知っている人だけが情報を得ることができる」

っていう技術で、ハッシュ化っていうのは

情報の正しさを照合できる」

っていう技術

なので

パスワード暗号化していたら大丈夫

っていうのは嘘で

パスワード暗号化した鍵を大切に保管しているか大丈夫

が正しい

平文を暗号化してサーバに保存している場合は、結局は鍵をサーバに預けているので、信頼情報ユーザの手を離れてしまっている

「めちゃくちゃ厳重に保管しています!!!

って言われても家の鍵を大家に預けているのと同じ状態で家の中に100億円置いてるような人だと信用に足らない

じゃぁ例えばユーザにその鍵を預けておいて、認証の度に渡すようにしよう!なんていうことをやっても

鍵はデジタル情報から簡単コピー可能(追跡不可能)なので一度でも渡したら信用価値ゼロになる

ちなみにこれはハッシュ化でも同じ話で、ハッシュ値をサーバに保存していても平文を送りつけてハッシュ値をサーバ計算していたら意味が無い

ユーザ側でハッシュ値を計算して送りつける方法なら多少は意味があるけれど、結局は鍵がハッシュ値に変わっただけなので通信傍受されたらダメ

なのでダイジェスト認証っていう仕組みを使うので興味がある人は調べて欲しい

ということで、暗号化をしても結局は鍵の扱いに困ることになる

ログインで知りたいのはパスワードのものではなくて「パスワードを知っているかどうか」だけ

なので、ハッシュ化を使って「パスワードを知っていたらハッシュ値も当然知ってるよね・・・?」っていう感じの認証を行う

ここで大事なのはハッシュ化っていうのは秘匿情報ユーザの側にあってサーバ側に渡していない、ということ

なのでプログラムをこねくり回しても原理的には元のパスワードは分からないしそれが基本

そこに「でも単純なパスワード使ってる人がいるかも?」「使い回している人がいるかも?」っていう悪知恵で攻撃してくる人がいるので

ソルトとかペッパーかい小手先防衛してるっていうだけ

あと、秘匿情報ユーザ側にある、といってもどうせスマホとかPCに保存されているのでそっちをクラックされると漏洩する

なので基本的に鍵は脳内に保存した文字列生体認証、もしくはデバイス認証を使う

この辺はパスワードマネージャーを使っていてもマスターパスワード必要になるのと同じ

ここまでがセキュリティ講習の1日目の午前中の話

2022-03-16

anond:20220316202807

前提として、サーバ側のDBの中身が漏洩したと同時に、プログラム設定ファイル、丸ごと全部漏洩したとみなしている。

プログラムDB上のパスワードをどのように処理してるか丸見えになる。

複合できるということは、プログラムの手の届く場所に鍵があるということ。

その鍵がユーザごとに違っていようが関係ない。そのプログラムを通せば複合できるわけだから

複合した結果、元のパスワードを「瞬時に」出せる。

その元のパスワードを使って、正規ユーザのフリをして悪いことができる。

さてハッシュ場合、bcryptなどではソルト付きハッシュ値になってる。

ハッシュ値ごとにソルトが違う構造になってる。

ハッシュなので「時間をかければ」、そのハッシュ値になる値を検索できる。

元のパスワードと同一であるかどうかはわからない。(同一でなければバレる可能性が高まる

1ユーザごとに時間をかける必要がある。

ここである程度時間を稼げるので、サーバ管理者側にサービスを停止したり、パスワードを全部向こうにするような時間の余裕ができる

ログイン ユーザー登録
ようこそ ゲスト さん