ブックマーク / qiita.com (144)

  • ソルト付きハッシュのソルトはどこに保存するのが一般的か - Qiita

    pictBLandとpictSQUAREに対する不正アクセスがあり、パスワードがソルトなしのMD5ハッシュで保存されていたことが話題になっています。 2023年8月16日に外部のフォーラムにpictSQUAREより窃取した情報と主張するデータ販売の取引を持ち掛ける投稿が行われた(中略)パスワードはMD5によるハッシュ化は行われているもののソルト付与は行われていなかったため、単純なパスワードが使用されていた29万4512件は元の文字列が判明していると投稿。(それ以外の26万8172件はまだMD5ハッシュ化されたままと説明。) 不正アクセスによるpictBLand、pictSQUAREの情報流出の可能性についてまとめてみた - piyolog より引用 これに関連してMD5ハッシュやソルトに関するツイート(post)を観察したところ、どうもソルトの理解が間違っている方が多いような気がしました。

    ソルト付きハッシュのソルトはどこに保存するのが一般的か - Qiita
    miyakawa_taku
    miyakawa_taku 2023/08/17
    bcrypt使えばソルトも一緒に出力されるから、bcrypt(2b)を正しく使ってその結果を保存しよう、がほぼ正解だと思う。ペッパーは知らなかった。
  • X270へEM7430の搭載チャレンジ - Qiita

    やること 簡単に言うとEM7430のVID,PID,BIDを変更し、BIOSのホワイトリストを騙す。 0.前提 ワイヤレスWWAN USBアダプターカードにEM7430を搭載して、windows環境に接続する。 1.ドライバの用意(windows10) 以下URLのnz3wm10w.exeをダウンロード&インストールする。 2.ファームウェアアップデートwindows10) 以下URLの7430→Genericをダウンロード&実行する。 ※デバイスマネージャーで認識していないとうまくいかない。 ※autoflash-7455.shでもファームウェアアップデートできるが何故かうまくいかない。 3.スクリプトの修正(windows10) 以下URLのautoflash-7455.shを参考に修正する。 修正したファイル #!/bin/bash # shellcheck disable=SC2

    X270へEM7430の搭載チャレンジ - Qiita
  • 形式手法はなぜ流行っていないのか - Qiita

    はじめに みなさん形式手法をご存知でしょうか? 名前くらいは聞いたことあるけどいまいち何かわからないという方が多いのではないでしょうか。 その通りです。形式手法はアカデミアではそれなりに研究されているものの、 一般の(特にWeb系)ソフトウェア開発者が携わることはなかなかないのではないかと思います。 この記事ではソフトウェア開発に形式手法が導入されないのはなぜなのかを考察します。 この記事ではアジャイルソフトウェア開発において形式手法を導入する際のハードルについて考察します。 追記 記事について、「形式手法は流行っていない」というのは正確ではないのではないかという指摘をいただきました。組み込み系や社会インフラ系等バグを絶対に出せないシステム開発では形式手法がよく使われているそうです。 ちょっと古いデータですが活用事例です。 誤解を招く紹介となっていたことをお詫びします。 さらに追記 ku

    形式手法はなぜ流行っていないのか - Qiita
  • コンテナ運用におけるログ基盤設計のベストプラクティス - Qiita

    課題 数年前と比較すると、GKEやECSを始めとするコンテナ実行環境でのアプリケーション運用を行うサービスはかなり増えてきた印象があります。 コンテナを運用する上では、アプリケーションのイベントを追跡する上でログをどう扱うかが課題になります。今までのように古いログを定期的にローテートして別のストレージに転送するといった手法はクラウドネイティブなアーキテクチャには最適とは言えません。 アプリケーション開発の方法論として、Twelve Factor App ではログをイベントストリームとして扱うためのガイドラインが示されていますが、近年のWebアプリケーションではシステムを疎結合に連携するマイクロサービスという考え方が主流になりつつあります。 アプリケーションログはサービスごとにフォーマットを整形した上で、ログ収集サービスに配送。必要に応じてリアルタイム分析や異常データの通知、そしてデータの可

    コンテナ運用におけるログ基盤設計のベストプラクティス - Qiita
  • NetBSDを手探りで移植したときの話 - Qiita

    この記事は自作OS Advent Calendar 2020 7日目の記事となります。 はじめに 現在のオープンソースOSは、たとえばLinux開発ボードであればボードベンダーから移植済みのLinux環境が提供されたり、たとえばNetBSDであればクロスコンパイル環境が整備済みでドキュメントも用意されていて、最低限の移植作業で移植が完了したりします。 ぼくがNetBSDを移植した当時(1993年)はそうではありませんでした。ドキュメントもなくいろいろ手探りで、それも一人でやらざるを得ませんでした。苦労話のことは置いておいて、技術的にどういう物が用意され何を調べてどういう手順で移植していったかを記録に残せればと思います。(って前置きした割に苦労話が多いような気がします、すみません) かなり昔の話なので、けっこう忘れてることも多く、微妙に記憶が間違っていたりすることも、順番が前後していることも

    NetBSDを手探りで移植したときの話 - Qiita
  • めくるめくLinuxカーネルじゃないLinux実装の世界 - Qiita

    EDIT^7: blink と box86、FEX。 EDIT^6: Unikraft 。 EDIT^5: Tilck 。 EDIT^4: コメント。gVisor はすっかり忘れていました!Linuxを拡張するためにLinuxを実装した良い例だと思います。LINE有りましたね。。 SF.netのCVSはもう死んでしまったので除外にしました。。 OSvのバイナリ互換 はPIEであることが要求なので。。といっても世間的にはもうLinux = Debian/Ubuntu で良いですかね。。表現を調整しました。 EDIT^3: Noah忘れてた! EDIT^2: Cygwinは 下書き段階で削ってしまった 。。 qemuを移植したとき に互換性がイマイチだったので。。特殊fdやprocfsの充実ぶりとかを考えると "かなりLinux" と言って良いとは思うけど、 mmap 等でLinuxとWind

    めくるめくLinuxカーネルじゃないLinux実装の世界 - Qiita
  • 図解 X.509 証明書 - Qiita

    はじめに X.509 証明書について解説します。(English version is here → "Illustrated X.509 Certificate") ※ この記事は 2020 年 7 月 1 日にオンラインで開催された Authlete 社主催の『OAuth/OIDC 勉強会【クライアント認証編】』の一部を文書化したものです。勉強会の動画は公開しており、X.509 証明書については『#4 X.509 証明書(1)』と『#5 X.509 証明書(2)』で解説しているので、動画解説のほうがお好みであればそちらをご参照ください。 1. デジタル署名(前提知識) この記事を読んでいただくにあたり、デジタル署名に関する知識が必要となります。つまり、「秘密鍵を用いて生成された署名を公開鍵で検証することにより」、「対象データが改竄されていないこと」や「秘密鍵の保持者が確かに署名したこと

    図解 X.509 証明書 - Qiita
  • 末尾呼び出し最適化についてあれこれ - Qiita

    この記事は「言語実装 Advent Calendar 2018」の22日目の記事です。 はじめに 「関数の最後の処理が関数呼び出しのときは、その関数呼び出しを goto に変換できる」「できねーよ」のやりとりを年一回ぐらいのペースで見かける気がしています。このあたりについて説明しようとすると結構長くなります。何度も同じ話を繰り返すのもなんなので、この手の議論が出てきたら「いろいろあるんじゃよ…いろいろ…」と言えるような記事を残しておこうかと思いました。 というわけで「末尾呼び出し最適化についてあれこれ」です。 言葉の定義 最初に、混乱を避けるために言葉を定義しておきたいと思います。 「末尾呼び出し」と「末尾再帰」 「末尾呼び出し」は「ある関数の末尾文脈で関数を呼び出すこと」です。 「末尾再帰」は「ある関数の末尾文脈でその関数自身を呼び出すこと」です。 「末尾再帰」では呼び出すのはその関数自

    末尾呼び出し最適化についてあれこれ - Qiita
  • Linuxのユーザプロセスのメモリマップについて - Qiita

    .text, .data, ユーザ空間のスタック .text, .dataの仮想アドレス空間生成はexec()の処理の一環で行われます。 ポイントになるのは、以下do_execveat_common()で呼び出している2つの関数bprm_mm_init()とexec_binprm()です。 /* * sys_execve() executes a new program. */ static int do_execveat_common(int fd, struct filename *filename, struct user_arg_ptr argv, struct user_arg_ptr envp, int flags) { /* 略 */ retval = bprm_mm_init(bprm); if (retval) goto out_unmark; /* 略 */ retva

    Linuxのユーザプロセスのメモリマップについて - Qiita
  • LLVM 6.0 で作るフロントエンドの道しるべ - Qiita

    記事はC++でLLVM 6.0を用いてフロントエンドを作成する、その第一歩を踏み出すための記事です。はじめに、C++でLLVM IRを生成する方法を知るために最小構成のコードを解説し、そのあとPhiの扱いと組み込み関数の実装方法を紹介します。 筆者は今まで、いくつかおもちゃレベルのプログラミング言語を作ってきました。その中でLLVM対応したいという漠然とした思いから きつねさんでもわかるLLVM や Kaleidoscope に挑戦1しました。しかし、バージョンの壁、ドキュメント量の壁、検索しても古い情報しか出てこない壁などに当たってくじけていました。 気で取り組み始めた結果、それらの壁をなんとか突破することができ、LLVM 6.0を用いたフロントエンド実装を作ることができました。そこで得た知見を、同じ悩みを持つ人のためにまとめました。 成果物のコードだけを参照したい方は、 ysaka

    LLVM 6.0 で作るフロントエンドの道しるべ - Qiita
  • Java8からJava11への変更点 - Qiita

    Java 8からJava 11 http://openjdk.java.net/projects/jdk9/ http://cr.openjdk.java.net/~iris/se/9/latestSpec/apidiffs/overview-summary.html https://openjdk.java.net/projects/jdk/10/ http://cr.openjdk.java.net/~iris/se/10/latestSpec/apidiffs/overview-summary.html https://openjdk.java.net/projects/jdk/11/ http://cr.openjdk.java.net/~iris/se/11/latestSpec/apidiffs/overview-summary.html 言語 まず言語についての変更点です。

    Java8からJava11への変更点 - Qiita
  • Oracle JDK 8にあってOpenJDKにない機能 - Qiita

    はじめに Oracle JDK/JRE 8のPublic Updates1が商用ユーザーに対しては2019年1月までで終了し、2019年4月のリリースからライセンスが変更されたため、別のJDKディストリビューションへの切り替えを考えている方も多いと思います。 しかし、特にOracle JDK 8までは、素のOpenJDKにはない2機能が多く存在します。 安易に切り替えてトラブルにならないように、Oracle JDK 8にはあるが、一般的なOpenJDKディストリビューション3にはない機能を無償・有償別にまとめてみます。 Oracle JDK 8で無償利用できていた機能 Applets/JRE Browser plug-in 4 Java Web Start 5 JavaFX 6 VisualVM 7 Derby DB 8 Font Rendering/Fonts 9 Color Match

    Oracle JDK 8にあってOpenJDKにない機能 - Qiita
  • Microsoftの自然言語分類技術を本気で検証してみた。〈Microsoft Cognitive ToolkitでのChatBot実装〉 - Qiita

    Microsoftの自然言語分類技術気で検証してみた。〈Microsoft Cognitive ToolkitでのChatBot実装〉C#自然言語処理機械学習DeepLearningbot はじめに MicrosoftのDeep Learningツール(Cognitive Toolkit)を使った自然言語分類技術を、機会あって気で実装したので共有しようと思います。 今回のテーマは自然言語分類技術としていますが、もう少し具体的にいうと 自然言語の質問文に一問一答形式で回答するチャットボット です。「チャットボット」という言葉でも少しイメージが広くなってしまうので、今回は「ヘルプデスクの代替として使う問合せチャットボット」に限定します。投稿ではQAチャットボットと呼ぶことにします。具体例としては、こんなやつ。 LOHACOのマナミさん SMBCの若草わかばちゃん こういうQAチャットボ

    Microsoftの自然言語分類技術を本気で検証してみた。〈Microsoft Cognitive ToolkitでのChatBot実装〉 - Qiita
  • Batch Normalization の理解 - Qiita

    曖昧な理解だったのを、自前で実装できるくらいに理解しようと図解しました。その際の資料を公開します。 内容は、ほぼ"Understanding the backward pass through Batch Normalization Layer"の焼き直しです。 全結合NN の Batch Normalization いつ行うの? 全結合のニューラルネットワークの場合、Affinの後、活性化(例:ReLU)の前 入力は? Affinの出力を 行 として、 (図は入力層→NN第一層での例) ミニバッチ数分のAffin出力を並べた行列が入力。 入力行列をどう演算するの? 要素毎(列内)で正規化の演算します。 演算式は? 上図の1列の演算を示す 入力: 上図の1列の値 { $x_1$ ... $x_N$ } ( $N$:ミニバッチ数) 学習値 $γ$ , $β$ 出力:

    Batch Normalization の理解 - Qiita
  • Javaのサポートについてのまとめ2018 - Qiita

    Javaのサポートについてのまとめ Javaのライセンスやサポート状況について混乱が発生しているように思います。Javaのサポートを各団体がどのように行なっているかをまとめてみます。 知っておいてほしいのは、Javaの実装やサポートはOracle JDKかOpenJDKの二択、ではなくAdoptOpenJDKやAzul Zulu、Corretteなど多くの選択肢があるということです。 ここでサポートはバグやセキュリティに対応したパッチがリリースされることを表しています。 Javaのリリースサイクル これまで、Javaは3年ごとを目標に結局5年くらいかけて次のバージョンを出したりしていましたが、それでJavaはなかなかバージョンアップしなくて古いと言われていました。それが2017年9月、今後は6ヶ月ごとにフィーチャーリリースを行うというリリースモデルに変更されました。Java9が2017年9

    Javaのサポートについてのまとめ2018 - Qiita
  • すごいC言語のマクロ __is_constexpr - Qiita

    #define __is_constexpr(x) \ (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8))) #include<stdio.h> #define Def 10 #define __is_constexpr(x) \ (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8))) enum test{Enum}; int main(){ int Val = 10; const int Const_val = 10; int a = __is_constexpr(Val); int b = __is_constexpr(Const_val); int c = __is_constexpr(10); int d = __

    すごいC言語のマクロ __is_constexpr - Qiita
  • “プログラミング言語Rust: 2nd Edition”の日本語版PDFを作成した - Qiita

    はじめに https://doc.rust-jp.rs/book-ja-pdf/book.pdf プログラミング言語Rust: 2nd Edition1の日語版PDFを公開しました! 組版上のエラーなどを見つけたら気軽にIssueなどで報告してほしいです 改善してほしい点なども歓迎します! 頃合いをみてrust-lang-jaに移すかも 移した 実はWeb版もあります! https://doc.rust-jp.rs/book/second-edition/ HTML版のソースはhazamaさんのMarkdownからRustコミュニティがフォークしたもので、PDF版と同じものを参照しています GitHub Repository https://github.com/rust-lang-ja/book-ja-pdf エラー報告などをお待ちしています。 追記 アスキードワンゴさんから出版されま

    “プログラミング言語Rust: 2nd Edition”の日本語版PDFを作成した - Qiita
  • 機械学習全盛だけど、あえてルールエンジンを試す -Pythonのdurable_rulesを試す- - Qiita

    機械学習が盛り上がる中ではありますが、ルールベースでできることも色々あるのではということで、Pythonのルールベースエンジンの『durable_rules』というのを使ってみたので紹介しておきます。 ルールエンジンも色々と実装がありますが、Pythonで使えて最近も開発されてそうなのを探すとヒットしたのがこれです。 日語情報全然ないので知名度はないかも。。 RedisConf17で発表されているようです。 参考: https://www.slideshare.net/RedisLabs/redisconf17-durablerules Reteアルゴリズムが実装されているとか。 Pythonだけじゃなく、node.js、Rubyでの実装もあるので、用途に応じて活用できそうです。 導入 pipでパッケージ導入 durable_rules自体の導入はかんたん。

    機械学習全盛だけど、あえてルールエンジンを試す -Pythonのdurable_rulesを試す- - Qiita
  • SSDで道路の損傷を検出した - Qiita

    はじめに SSD(Single Shot Multibox Detector)で道路の損傷を検出しました. 作業環境等に関しては株式会社パソナテックさんにご協力いただきました. なお成果物は学習済みモデルとともにGitHubに公開されています. 不具合もまだ複数あると思いますので,気軽にissueを立てていただければと思います. やったことを最初から文章で説明するより,まずは成果物を見ていただいたほうが早いと思うので,デモをお見せします. このように,横断歩道やセンターラインのかすれ,陥没,ひび割れなどを検出することができます. 道路の損傷を検出する方法はいろいろありますが,画像認識を用いるならば,車で移動しながらスマホや車載カメラでリアルタイムに検出できると便利です. このような認識手法を採用するのであれば,デバイスの制約により,計算量が小さいモデルが求められます. 道路の損傷を物体認識

    SSDで道路の損傷を検出した - Qiita
  • C++完全理解ガイド Rev1.4.01 - Qiita

    はじめに C++を完全理解したので完全理解ガイドを書く。 最初に言っておくがタイトルは詐欺で、実際はポエムである。 僕は仕事C++を書いたことはないのでなんか変なことを言っているかも知れない。 ところで無職になったので、普通にC++で職がほしい。 2018年6月から受託で仕事をもらい、毎日C++17を書いています。 2018年9月から雇用され、毎日C++17を書いています。 かなり雑に書いているはずなので、コメント等でどんどんマサカリを投げてほしい。 僕は何者か 工学部を卒業して4年ほど高校の理科教師をやっていたが、現在無職になった人。 工学部を卒業して4年ほど高校の理科教師をやっていた。 最初は良かったのですが、授業に慣れ、このまま自分の成長が止まってしまうのかとなぁと思い、辞めて無職に。 一ヶ月無職を楽しんだあと、某から受託でC++を書く仕事をもらい、C++17を書いている。 主にツ

    C++完全理解ガイド Rev1.4.01 - Qiita
    miyakawa_taku
    miyakawa_taku 2018/03/28
    「Vimのパフォーマンス上の障害となるのは『あなた』だ」は冗談でなくその通り。長年の習熟によって、指先から仮想端末上のカーソルまで神経が通ったような感覚でテキストオブジェクトが操作できるようになる。