2014年10月13日月曜日

SHA-1のハッシュ値を確認する方法(Windows)

ダウンロードしたファイルがハッキングなどにより書き換えられていないかを確認するには、ハッシュ値を利用すると便利です。場合によっちゃこれだけだと不十分ですが、とりあえずは。。ある種の安全性を担保する必要があるファイルを配布するサイトでは、よくファイルのSHA-1値が表示されています。

WindowsPCでは、通常そのままではSHA-1ハッシュ値やMD5ハッシュ値を確認することが出来ませんが、マイクロソフト公式のサポートから、ハッシュ値確認用ソフトウェアがダウンロード可能です。
ただ、こんなものを使うのはそっち系の人のみなので、使い方の説明を書いておこうと思います。
分かり易くは書かれていますが、人によっては厳しい気がしないでもないので(特に、このページまでたどり着かれた方とか)、より細かく書いておこうと思います。

以下のリンクに説明があります。
http://support.microsoft.com/kb/889768/ja

ここから、更に実行ファイルを取得します

直接取得する場合は以下のリンク内にあります。
http://support2.microsoft.com/kb/841290

リンク先から、ファイル チェックサム整合性検証ユーティリティ ・ パッケージをダウンロードして、まずどこかに保存しておいてください。

次に、D、E、F等のハードディスクドライブ(どれでもいいです)の直下(開いてすぐの場所。EならE:\)に、FCIVという名前のフォルダを作ります。今回は説明が簡単なのでEドライブに作成することにします。

その中に、インストールしたパッケージをほうりこんで、ダブルクリックでそこに展開します(展開先にもFCIVフォルダ内を選択します)。

次に、システムパスにこのソフトを登録します。間違えるとえらいことになる(PCが動かなくなる)可能性があるので、慎重にやってください(何かあっても自己責任でお願いします)。
やり方は、Windows7の場合、まずコンピュータをダブルクリックし、システムのプロパティ→システムの詳細設定を開きます。システムのプロパティが表示されるので、詳細設定タブから環境変数をクリックします。下側のシステム環境変数の一覧で、変数がPathになっているものをダブルクリックします。

そして、そこに書かれているパスの一番最後に

;E:\fciv

を追加します。ここは、非常にざっくり書くとコマンドプロンプトからすぐに目的のソフトが使えるように登録しておく場所で、1つの;記号でそれぞれを区切っています。これで、E:\fcivフォルダ内のプログラムをすぐに呼び出せるようになりました。

では、実際にSHA-1ハッシュ値を確認してみましょう。ハッシュ値を計算するファイルを、ひとまずEドライブの中においておきます。とりあえず、ファイルを入れるフォルダ名はsample、確認するファイルはsample1.txtにします(中身は「テストです」と書いて、メモ帳で作って下さい)。位置は、E:\sampleとなります。

スタートメニューから、コマンドプロンプトを起動し、以下を入力します。

fciv -sha1 e:\sample\sample.txt

表示された長い文字列がこのファイルのSHA-1値になります。この値は、内容が変わると全然違うものになります。ためしに、sample.txtの中身を「テストです。」にしてみましょう。「。」が増えただけです。同様の手順で確認すると、全然違う値になるのが分かるかと思います。つまり、勝手に中身を書き換えられていたら検出することが出来るのです。もっとも、ダウンロードしたファイルと、SHA-1値を表示しているwebサイトの両方が書き換えられていたらアウトなんですがw。なお、調べたいファイルの、拡張子(.txtとか)の入れ忘れにはご注意ください。

プロンプトの式は、分かり易く書くと

実行するプログラム名 実行モード 調べたいファイルの場所

というようになっています。実行モードを-md5にすると、MD5の値が計算可能です。
以上ですー。






2014年9月30日火曜日

ツイッターの小技

パソコンでツイッターを使っていて、フォロワーの確認などでいちいち下へスクロールするのがめんどくさい場合の小技。


キーボードのEndキーを押しっぱなしにする


以上。。


なお、セキュリティの関係でツイッタークライアント等のサービスを使用していない場合である。

2014年9月2日火曜日

自作アプリをASUS MeMOPad7(ME176C、intel Atomプロセッサ)で実機テストするには

最初、やり方が分からなくて困ったので一応ここにメモ。このやり方はWindows7用なので、Windows8.1やWindows10等をお使いの方は

こちら

へどうぞ。

なお、Eclipse(ver4.2)で実機テストを行う場合です。

この機種の場合、メーカにドライバは無く、インテルからドライバ(執筆時でver1.14)をダウンロードして、開発に使っているパソコンに入れる必要があります。


そして、USBデバッグをONにするために、「設定」から開発者向けオプションを表示させます。確かビルド番号か何かを7回ぐらい連打したら開発者向けオプションが出現します(記憶があやふやですまぬ・・・)。

なお、このタブレットにも搭載されているAndroid4.42には重大なバグがあり、サービスの自動復活が出来ません。onStartCommandでreturn START_STICKY;を返しても、死んだままになります。海外でも結構騒がれてて、4.43から直ってるというような情報もあるのですが、4.43の実機を持ってないので詳細は不明です。

このタブレット、かなり売れてるみたいですね。私の場合、このバージョンのバグ対策も含めてちょうどいいデバッグ環境になっています。

以上ー。


追記:初期設定だとMTPモードがONになっていたと思うのですが、解除しないでUSBデバッグだけONだとEclipseに認識されません。ご注意を。

キッチンタイマーの秋バージョンを投下

キッチンタイマーの秋バージョンを投下しました。うさぎを何回かタップすると、お月見状態になるという仕掛けがあります。

キッチンタイマーのダウンロードはこちら

さて、そろそろ冬バージョンも作り始めないと。。

2014年8月3日日曜日

Androidプログラミング:タイマーなどの高速な描画で、文字サイズを変えて表示したい場合

タイマーの小数点以下の表示など、高速で連続表示する必要のある部分では、android.text.Htmlを使用した文字列の操作では処理が重すぎ、画面のもたつく原因になります。
でも、めんどくさいしバックグラウンドサービス等から一括で送信した文字列を使いたい・・・。


これは、javaのスプリットを使用することでなんとかなります。

レイアウトxmlファイルで大文字、小文字のそれぞれに異なるidを設定しておき、以下のようにセットします。


TextView txt1 = (TextView) findViewById(R.id.txt1);
TextView txt2 = (TextView) findViewById(R.id.txt2);

String str_split = "00 : 00 : 00,.00"; // ここにスプリットする文字列を入れる。区切り文字は必須。
String[] str_splited = str_split.split(","); // この場合","で区切る。なお、","は表示されない。

txt1.setText(str_splited[0]);
txt2.setText(str_splited[1]);


この方法だと処理が高速なので、上手く行きます。すぐ解決したのですが、意外とネットに情報が無かったので。

学生向け、やっちゃいけないホームページの作り方

Windows環境に限定して、本当に基本的なことだけ書きますが・・・。


1. 特定の位置をクリックで行ける隠しページを作り、プライベートな何かをアップロードする。

駄目です。ブラウザを開いて、F12キーを押してみてください。HTMLのソースが表示されます。どこにリンクがあっても、ソースが読める人には簡単にばれてしまいます。


2. 簡単なパスワードで守られたページに、連絡先情報、サークル名簿などの個人情報をアップロードする。

駄目です。ブルートフォースアタックで簡単に破られます。20文字以上の非常に強度の高いパスワードを用いたとしても、キーロガー(打ち込んだパスワードを盗むウイルス)や通信の盗聴は防げません。


3. ホームページに使う写真を一括で(SDカードの中身全部等)アップロードし、そこから使用するものだけを使う。

駄目です。不適切な画像が混ざっているかもしれません。リンクしていない画像でも、強制ブラウズすることで簡単に見られてしまいます。写真以外もアップロードしていた場合、それも全部見れる状態です。アップロードは、本当に必要なものに限定して下さい。


いかがだったでしょうか?そんなの当たり前だろ!とか言われそうですが、意外とアレだったりするので書きました。ひやっとした方は、急いで直すことをお勧めします。

google-play-services のライブラリで出るエラーの直し方

8月1日から、従来のAdMob実装方法が使えず、グーグルプレイサービスを実装する必要があるのだが、グーグルからダウンロードしたEclipse(最新のAndroid SDK)での署名時にエラーが出る。\(゜ロ\)(/ロ゜)/

というわけで、以下、直し方。なお、私の環境は日本語プラグイン入れたPleiadesなのでご注意を。

http://stackoverflow.com/questions/23821554/auth-client-using-bad-version-title-is-translated-here-but-not-found-in-defaul

に書いてある通り。

英語なので、分かり易く日本語で書くと、ようはLintエラー検査で、MissingTranslationとExtraTranslationの重大度が高く設定されているため、はじかれています。

日本語環境では

ウインドウ--->設定--->Lintエラー検査から、「問題」フィールドにMissingTranslation及びExtraTranslationと打ち込み、重大度を警告(Warning)に引き下げてやればOKです。

あとは、google-play-services_lib/resの中の、values-en-rIN の auth_strings.xmlを valuesフォルダにコピーしといたほうが良い・・・かな?英語のauth_strings.xmlならどれでも良い気もするけど、valuesフォルダにauth_strings.xmlが入ってないと、デフォルト値が無いことになる。

ブログ開設ー。

ブログを開設してみました。