検索
リンク
タグ
ASP.NET
.NET
ASP.NET MVC
F#
Azure
Visual Studio
ASP.NET Core
ライトニングトーク
Plone
Selenium
AJAX
C#
jQuery
ADO.NET Entity Framework
JavaScript
SQL Server
EFCore
LINQ
WebMatrix
Fizz-Buzz
カテゴリ
最新の記事
最新のコメント
記事ランキング
最新のトラックバック
以前の記事
2024年 02月 2024年 01月 2023年 12月 2023年 11月 2023年 10月 2023年 09月 2023年 08月 2023年 07月 2023年 06月 2023年 05月 2023年 04月 2023年 03月 2023年 02月 2023年 01月 2022年 12月 2022年 11月 2022年 10月 2022年 09月 2022年 08月 2022年 07月 2022年 06月 2022年 05月 2022年 04月 2022年 03月 2022年 02月 2022年 01月 2021年 12月 2021年 11月 2021年 10月 2021年 09月 2021年 08月 2021年 07月 2021年 06月 2021年 05月 2021年 04月 2021年 03月 2021年 02月 2021年 01月 2020年 12月 2020年 11月 2020年 10月 2020年 09月 2020年 08月 2020年 07月 2020年 06月 2020年 05月 2020年 04月 2020年 03月 2020年 02月 2020年 01月 2019年 12月 2019年 11月 2019年 10月 2019年 09月 2019年 08月 2019年 07月 2019年 06月 2019年 05月 2019年 04月 2019年 03月 2019年 02月 2019年 01月 2018年 12月 2018年 11月 2018年 10月 2018年 09月 2018年 08月 2018年 07月 2018年 06月 2018年 05月 2018年 04月 2018年 03月 2018年 02月 2018年 01月 2017年 12月 2017年 11月 2017年 10月 2017年 09月 2017年 08月 2017年 07月 2017年 06月 2017年 05月 2017年 04月 2017年 02月 2017年 01月 2016年 12月 2016年 11月 2016年 10月 2016年 09月 2016年 08月 2016年 07月 2016年 06月 2016年 05月 2016年 04月 2016年 03月 2016年 02月 2016年 01月 2015年 12月 2015年 11月 2015年 10月 2015年 09月 2015年 08月 2015年 07月 2015年 05月 2015年 04月 2015年 03月 2015年 02月 2015年 01月 2014年 12月 2014年 11月 2014年 10月 2014年 09月 2014年 08月 2014年 06月 2014年 04月 2014年 03月 2014年 02月 2014年 01月 2013年 12月 2013年 10月 2013年 09月 2013年 08月 2013年 07月 2013年 06月 2013年 05月 2013年 04月 2013年 03月 2013年 02月 2013年 01月 2012年 12月 2012年 11月 2012年 10月 2012年 09月 2012年 08月 2012年 07月 2012年 06月 2012年 05月 2012年 04月 2012年 03月 2012年 02月 2012年 01月 2011年 12月 2011年 11月 2011年 10月 2011年 09月 2011年 08月 2011年 07月 2011年 06月 2011年 05月 2011年 04月 2011年 03月 2011年 02月 2011年 01月 2010年 12月 2010年 11月 2010年 10月 2010年 09月 2010年 08月 2010年 07月 2010年 06月 2010年 05月 2010年 04月 2010年 03月 2010年 02月 2010年 01月 2009年 12月 2009年 10月 2009年 09月 2009年 07月 2009年 06月 2009年 05月 2009年 04月 2009年 03月 2009年 02月 2009年 01月 2008年 12月 2008年 11月 2008年 10月 2008年 09月 2008年 08月 2008年 07月 2008年 06月 2008年 05月 2008年 04月 2008年 03月 2008年 02月 2008年 01月 2007年 12月 2007年 11月 2007年 04月 2007年 03月 2007年 02月 2007年 01月 2006年 11月 2006年 10月 2006年 09月 2006年 08月 2006年 07月 |
2013年 05月 10日
お題"password" という ASCII 文字列を SHA256 アルゴリズムでハッシュし、結果を "5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8" という文字列で求める作業を、Windows 上でどの程度手軽に行えるかやってみよう。以下に自分の思いついた方法を記しておく。 LINQPadLINQPad という無償利用可能なデスクトップアプリケーションを使うと(機能強化されてる有償版もあります)、C#/VB/F# のコード片を簡単に実行できる。予めインストールしておいた LINQPad を起動し、"Language" に "C# Expression" を選んでおいて、テキスト欄に以下のコードを入力し、実行。 BitConverter.ToString(System.Security.Cryptography.SHA256.Create().ComputeHash(System.Text.Encoding.ASCII.GetBytes("password"))).ToLower().Replace("-","")これで結果欄に SHA256 によるハッシュ結果が表示される。 しかし "手軽" とは言いにくい...。 F# 対話環境.NET系列の関数型言語 F# の処理系には fsi.exe という対話環境が付属している。F# がインストールされている環境なら fsi.exe を起動して、コンソールから F# コードを入力して SHA256 ハッシュを求めることが可能だ。 Visual Studio (Pro Edition 以上) が起動しているなら、Alt + Shift + F でも、Visual Studio 内のドッキングウィンドウとして F# 対話ウィンドウが開く。 ただし、F# といえども、標準では C# や VB と同じく .NET Framework を使うだけなので、構造は先の LINQPad + C# の例とあまり変わらない。 せいぜい、パイプライン演算子を使うことでメソッド呼び出しのネストから解放されて多少は読みやすくなる程度。 ということで、 fsi.exe を起動して入力する F# コードはこちら。 "password"全然手軽じゃないですね... PowerShellWindows OS で CUI シェルといえば PowerShell。ということで、PowerShell のワンライナーをネットで検索して拾ってきた。 下記のとおり。 > [string]::concat(([security.cryptography.SHA256]::create().computehash([text.encoding]::ascii.getbytes("password"))|%{$_.tostring("x2")}))文字列に整形するあたりはちょっと違うが、ハッシュを計算する本質の部分は、やはり .NET Framework を呼び出してるだけ。 よって、LINQPad + C# とタイプ量があまり違わない。 相変わらずお手軽とは呼べないかも... ただし、こういうコードを .ps1 ファイルなどに書き留めて整理しておけば(後述の F# Scripts for Command Line のように)手軽に呼び出せるようになるだろう。 PHP の CLI を使う自分の環境には、WebMatrix をインストールしていたりした関係もあり、PHP 5.4 for IIS Express がインストール済みであった。そこで、php.exe を利用して SHA256 ハッシュを求めてみる。 まずはコマンドプロンプトを開く。 環境変数 PATH は通していなかったので、php.exe がインストールされている C:\Program Files (x86)\IIS Express\PHP\v5.4 までカレントディレクトリを移動する。 ( あるいは Windows エクスプローラでこのフォルダを開いてから、アドレスバーに "cmd" と入力して Enter 押下でコマンドプロンプトを開く ) あとは Window コマンドプロンプトから、下記コマンドを実行。 > php -r echo(hash("sha256","password",false));これならお手軽と言ってもいいですね。 F# Scripts for Command Line"趣味と実益を兼ねて" 作成、GitHub で公開している F# Scripts for Command Line (fsxcmds) が利用可能な環境を構築済みであれば、Windows コマンドプロンプトから下記コマンドの実行で SHA256 ハッシュが可能だ。> sha256 passwordただし事前の環境構築が若干手間ではあるが...
http://devadjust.exblog.jp/15742897/ http://devadjust.exblog.jp/15752557/ ほかにはどんな方法がある?自分の環境には、ほかにも、Git クライアントの Windows版である msysGit がインストールされている。この msysGit に同梱されている各種コマンドでどうにかできたりするのかな、と思案中。今日時点ではたまたまインストールされていないが、Python や Ruby がインストールしてある時期もあるので、こういった LL 言語が使えるとまた違った方法があるかも。
by developer-adjust
| 2013-05-10 12:47
| その他IT系
|
Comments(0)
|
ファン申請 |
||