• ベストアンサー

ハッシュ値 のファイル

あるファイルfile1.txt のハッシュ値を計算してその結果を記載したファイル file2.txt のデータは、 Hash SHA1 hashsize=20 C1 14 ...... 4F のように、 先頭に、方式 1行あけて、サイズ 次の行に、計算したハッシュ値 となっているのでしょうか? 参考になる資料がありましたらよろしくお願いします。 なお、上の値は、 RFC6234 にある、ソフトを動かした結果です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>RFC6234 にある、ソフトを動かした結果です。 ソフト次第…でしょう。 sha1sumなどだと、 0a2c5026128e32df560d564d1fe788f41e8f36d6 .bashrc って感じだったりしますし。

uyama33
質問者

補足

err = hashfile(hashno, hashfilename, extrabits, numberExtrabits, 0, (const unsigned char *)hmacKey, hmaclen, (const uint8_t *) info, infolen, okmlen, resultstr, hashes[hashno].hashsize, printResults, printPassFail); else if (hashFilename) err = hashfile(hashno, hashFilename, extrabits, numberExtrabits, 1, (const unsigned char *)hmacKey, hmaclen, (const uint8_t *) info, infolen, okmlen, resultstr, hashes[hashno].hashsize, printResults, printPassFail); となっていますので、この引数が一致し、関数の内容が固定されていないと 書名の確認をするには同一のソフトが必要になると思います。 ソフトが違っても署名の確認が出来るためには署名部分の形式に 一定の規格が必要だと思うのですがいかがでしょうか?

関連するQ&A

  • セキュリティ証明書のハッシュ値について

    セキュリティ証明書(SSL通信時などに利用する証明書)には 拇印情報があり、ここは証明書自身のハッシュ値が記録されていると聞きました。 証明書から作成されたハッシュ値を再びハッシュ値に記載したら 元の証明書を書き換えているため、次回ハッシュ値を求めたら別のハッシュ値になりませんか? 1.証明書 -> [ハッシュ関数] -> ハッシュ値 2.ハッシュ値を証明書に記述記載 3.証明書(ハッシュ値付き)-> [ハッシュ関数] -> ハッシュ値 1と3の結果のハッシュ値同士は一致しないですよね? GMailの証明書を見ると、sha1で、 90adbe01984695b6649ad0f9ef4f1b5836eb380d という値になっていて、 私の端末(WindowsXP)でfcivコマンドを実行した結果も fciv -sha1 gmail.cer 90adbe01984695b6649ad0f9ef4f1b5836eb380d gmail.cer となり、同じ値なのですが。。。 証明書に記載されているハッシュ値はどのように計算されているのでしょうか?

  • 【初歩的質問】重複データがある時のハッシュへの代入について

    perl5.8です。すごくしようもない質問で申し訳ないのですが、次のようなファイルfile.txtの内容を、ハッシュ%hashに入れていくとします。 --- file.txtの中身 --- a,1 c,3 a,1 b,2 c,3 ----------------------- --- ソース(抜粋) ----- open(IN, "file.txt"); @data = <IN>; close(IN); %hash = (); foreach(@data){ chomp $_; @out = split(/,/, $_); $hash{$out[0]} = $out[1]; } ----------------------- 上記の結果は当然ながら、$hash{a}=1,$hash{c}=3,$hash{b}=2となるのですが、重複したデータを読み込んでハッシュに入れようとした時に、ワーニングなりエラーがなにも出なかったのがちょっと気持ち悪いです。重複したキーを読み込んだ時は、内部的には黙ってはじいてくれていると解釈してよいのでしょうか?そうだとすると、こういう書き方は、重複した行を排除するテクニックとなりえるのでしょうか?

  • シェルでファイルのハッシュを取得する方法

    シェル(.shのファイル)でフォルダに格納されている複数のファイルからファイル名、ハッシュをとって HASH.txtというファイルに以下のようなレイアウトで作りたいのです。  ファイル名,ハッシュ     ・     ・ MD5というコマンドをつかえばハッシュがとれることは わかったのですが、これをどのようにファイルに書き込んでいくのか 方法がわかりません。 当方、UNIXをつかうのも初めてでどうしたらよいのか全然わかりません。(依頼してきた人も長期休暇中で困ってます) どこかサンプルや、解説があるようなHPでも構わないので どなたか教えてください。

  • PHPとObjective-Cでハッシュが違う結果

    Objective-Cでハッシュ値を生成し、PHPに送って、 PHP側でもハッシュ値を生成し、この2つを比較したいと思っています。 PHPでは、以下の関数でSHA256が取得できることがわかりました。 hash_hmac('sha256', $text, false) Objective-Cは自分で実装する必要があるようなので、以下のページのコードを使わせてもらいました。 http://zak-za-k.blogspot.jp/2011/09/objective-csha256.html この2つの関数それぞれで、同じ文字列を使ってSHA256のハッシュ値を出したのですが、 結果が違ってしまいます。 2つの関数で同じ結果を得られるようにするにはどうすればよいでしょうか。 参考にした上記URLのコードの内容は、ほとんど理解できていません。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • フォルダのハッシュ(SHA-1)を計算できるソフトを探しています。

    Windows XPを使用しています。 「フォルダ以下のファイルのハッシュを計算するのではなく」て、「フォルダそれ自体のハッシュ」を計算できるフリーソフトを探しています。計算したいハッシュはSHA-1です。ベクターでいくつか探してみましたが、どれもフォルダ以下の個々のファイルのハッシュを計算するソフトしか見つかりませんでした。知ってらっしゃる方がおられましたら、くれぐれもよろしくお教えください。

  • Access2000のVBAでSHA-256ハッシュ値を計算

    Access2000のVBA上で任意の値からSHA-256ハッシュ値を計算したいと考えています。 VB.netやPHPなど、他言語でのハッシュ値計算方法はWeb上でも探すことができたのですが Access2000のVBA上で行う方法が分かりません。 何とかしてハッシュ値を簡単に求める方法はないでしょうか。よろしくお願いいたします。

  • ハッシュのリファレンスを用いた処理

    ActivePerl 5.8 , WinXP SP2の環境です。 Perl スクリプトを用い、ファイルから複数のブロックからなる情報をよみとり、個別のハッシュを作り、それをリファレンスの配列としてまとめて後から参照するという操作をしたいのですが、詰まってしまいました。。 例として読み取るファイルは ---input.txt--------- >1 Jan 1 Feb 4 >2 Mar 9 Apr 3 >3 Oct 8 Nov 4 ------------------ ここから1,2,3の個別のハッシュ {Jan => 1 Feb => 4} {Mar=> 9 Apr =>3} {Oct =>8 Nov =>4} を作成し、それぞれのハッシュのリファレンスの配列をつくり、その後からすべてのハッシュの中身を個別に出力させたいと思いました。 次のようなスクリプトを作成したのですが思ったように作動しません。 use strict; open (IN, "input.txt") or die ("cant open file \n"); my $reff; my @array_of_reff; my %hash; my $count = 0; while(<IN>){ my $line = $_; ######ここでは各ブロックの頭の ">"を認識し、2個目以降であれば直前までで作ったハッシュのリファレンス($reff)を配列@array_of_reffに入れる。 if($line =~ /^>/){ if($count >0){ $reff = \%hash ; push (@array_of_reff, $reff); %hash = (); } $count++; } ########ここではアルファベットが入った行を認識して、ハッシュに追加しています if($line =~ /^[A-Za-z]/){           $line =~ /([A-Za-z]+)\s+/; my $month = $1; $line =~ /\s+(\d+)/; my $day= $1; $hash{$month} = $day;     } ###ここはファイルの最後になったら直前まで作っていたハッシュののリファレンス($reff)を配列@array_of_reffに入れる。 if( eof ){ $reff = \%hash ; push (@array_of_reff, $reff); } } #####ハッシュのリファレンスの配列(@array_of_reff)からもとのハッシュを参照し、ハッシュごとに出力 foreach my $reff_of_hash (@array_of_reff){    print "output";    while( (my $key,my $value) = each %$reff_of_hash ){     print "\n" , $key, " : ", $value, ;    } } このスクリプトを実行すると Nov 4 Oct 8 という3つめのハッシュのなかみが3回出力されてしまいます。自分では3つの別のハッシュをつくっているつもりでも、どうやら1種類しか作れていない、もしくはハッシュが上書きされているようなのですが、原因がわかりません。 この例だけ見るとハッシュのリファレンスを使う必要はないのですが、実際にはもうすこし大きいスクリプトで"ハッシュのリファレンスの配列を他のサブルーチンに渡す"ということを想定しており、これが解決できず先に進めない状態です。 アドバイス、解決法がわかったら教えていただけないでしょうか。

    • ベストアンサー
    • Perl
  • 動的な? 多次元ハッシュ

    text--------------------- 社会\t1 社会\t社会問題\t4 社会\t社会問題\t教育問題\t5 ---------------------text タブ区切りのテキストファイルを読み込んで 最後の値がハッシュ値になるような 深さがまちまちな多次元ハッシュをループで作りたいのです 手作業だと $HASH{社会}=1 $HASH{社会}{社会問題}=4 $HASH{社会}{社会問題}{教育問題}=5 できるだけ動作を軽くしたいので、evalや$1での置き換え等は 使いたくないのです どなたか教えてください

    • ベストアンサー
    • Perl
  • PHPとJavaでSHA256の結果を同じにしたい

    PHPから JavaServletにアクセスするシステムを作っています。 その際にパラメーターの改ざん対策にハッシュを渡すようにしたいのですが PHPでSHA-256でハッシュ化した値と JavaでSHA-256でハッシュかした値が異なってしまいます。 PHPだとハッシュ化する際の秘密鍵を指定する項目がありますが Javaでは見つかりませんでしたので この項目が違うために結果が違うのだと予想していますが Javaが内部的に使っている秘密鍵はどこか取得できるのでしょうか? やりたいこととしてはPHPとJavaで同じハッシュが取得できるようにしたいのですが 良い案とかやり方あったら教えてください。 ◆php string hash_hmac ( string $algo , string $data , string $key [, bool $raw_output = false ] ) ◆Java DigestUtils.sha256Hex(string data) わかる方いましたら教えてください。よろしくお願いいたします。

    • ベストアンサー
    • Java
  • どなたか教えて下さい。

    どなたか教えて下さい。 仕事でデータのハッシュ値を求める必要がありまして、質問致します。 ハッシュ値はマイクロソフトが提供しているfciv.exeというソフトを使い、希望のファイルのハッシュ値が、正しいことを確認しました。(正しいのは当たり前でしょうが・・・) 多少perlの知識がありましたので、perlで他の方のHPを参考にしながら、ハッシュ値を計算したところ、fcivと異なってしまって、誤った値が出ます。 何がおかしいのでしょうか? 作成したperlプログラム↓ use strict; use Digest::SHA1 qw(sha1_hex); open (INFILE,">c:\a_test.txt"); my %file = <INFILE>; print sha1_hex(%file),"\n"; close(INFILE); ちなみに開くファイルに指定したa_test.txtにはSHIFT_JISで「A」を40個入れてみました。 FCIVでは、a_test.txtの回答が5cdbb...で上記perlプログラムだとda39a3...になります。 ちなみに、a_testと名前を変え、バイナリーデータも同じように作成しましたが、 FCIVでは、回答が、5efef....上記perlプログラムではda39a3...となり、perlプログラムの方ではバイナリとテキストが同じ値になってしまいます。 ハッシュ値をよく理解してないことに問題があるのは承知ですが、どなたかプログラムの修正、ご指導宜しくお願いします。

    • ベストアンサー
    • Perl