- PR -

SHA1のアルゴリズム

1
投稿者投稿内容
もんもりや
会議室デビュー日: 2006/06/13
投稿数: 9
投稿日時: 2007-11-01 17:50
お世話になります。

SHA1の変換でつまってしまいました。
.Netライブラリ(Ver2.0)を使用した変換とマイクロソフト提供の"capicom.dll"(Ver2.1.0.2)を
VBScriptで使用した変換で結果が異なり困っています。

[.Net]
string password = FormsAuthentication.HashPasswordForStoringInConfigFile("12345","SHA1");

結果:8CB2237D0679CA88DB6464EAC60DA96345513964

[VBScript]
Set objHashedData = CreateObject("CAPICOM.HashedData")
objHashedData.Algorithm = 0 'SHA1
objHashedData.Hash "12345"
objHashedData.Value '結果

結果:2F2416BA3BCF5DB18362CAD20CA90089515ABE0F

SHA1という同じアルゴリズムを使用しているのに結果が異なるのはなぜでしょう?
[.Net]と[VBScript]でそれぞれ変換した値を照合したいのですができなくて困っています。

知ってる方いましたら教えて頂けませんか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-11-01 18:21
移動中なので、確認して欲しいことだけ

文字コードは一致していますか?
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2007-11-01 18:38
HashPasswordForStoringInConfigFile() の方は、US-ASCII で5バイトの "12345" の SHA-1 になってます。CAPICOM の方は、"12345" をリトルエンディアンの UTF-16 でエンコードした10バイトを SHA-1 したものになってますね。
もんもりや
会議室デビュー日: 2006/06/13
投稿数: 9
投稿日時: 2007-11-01 18:47
Jitta様、スフレ様、
さっそくの返答ありがとうございます。

文字コードに問題がありそうですね。
文字コード一致させてから再チャレンジしたいと思います。

文字コードを一致させるのって・・・・ 調べます!
もんもりや
会議室デビュー日: 2006/06/13
投稿数: 9
投稿日時: 2007-11-01 21:43

System.Security.Cryptography.SHA1CryptoServiceProvider

を使って文字コードを一致させるとばっちり照合できました。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)