は現在、私は、OpenSSLでこの操作を実行するC#でSHA256と秘密鍵ファイルを取得し、私は我々はCを使用してファイルの生成を自動化したい、
openssl dgst -sha256 -sign privateKey.key -out file.txt.signature file.txt
今生成されたファイルに問題がなかったしています#しかし、私は同じ結果を得ることができませんでした。
public class Program
{
static void Main(string[] args)
{
Console.WriteLine(CreateToken("key...", "text"));
Console.ReadLine();
}
public static string CreateToken(string key, string message)
{
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] keyByte = encoding.GetBytes(key);
HMACSHA256 hmacsha256 = new HMACSHA256(keyByte);
byte[] messageBytes = encoding.GetBytes(message);
byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
return System.Text.Encoding.UTF8.GetString(hashmessage);
}
}
私はこれに慣れていますが、正しい方法はありますか?
情報を正しく取得していないのですか?コンテンツをファイルから直接取得する必要がありますか?
ありがとうございました。
通常、メッセージをハッシュする以上のことを行います。 RSA署名とRabin-Williams署名:最先端技術(https://cr.yp.to/sigs/rwsota-20080131.pdf)を参照してください。セクション5、* Hash Randomization *は、あなたにとって興味深いはずです。 – jww