製品のロックを解除するために、WIX と C# カスタム アクションを使用しています。古いスタイルから (34450-ee33-8736333-30393) のようなロック解除キーを変更する予定です。これに適したアルゴリズムを教えてください。そして、これを学ぶためのオンライン資料を提供することは有益でしょう.
情報が必要な場合はお知らせください。
質問する
217 次
1 に答える
1
System.Net.Security および System.Net.Security.Cryptography でさまざまな暗号化クラスを使用できます。特にMD5CryptoServiceProviderのようなクラスを使用して、バイナリブロックまたはファイルのハッシュを計算し、あなたが言及したものと同様のダイジェストを出力しました。次に、システム生成キーとユーザー入力キーを照合して、ソフトウェアをアクティブ化/ロック解除できます。
これは、私の暗号化への取り組みの 1 つからのサンプルです。
byte[] bytes = System.IO.File.ReadAllBytes(ofd.FileName);
byte[] checksum = null;
if (optMD5.IsChecked==true)
{
MD5 md5 = System.Security.Cryptography.MD5.Create();//.MD5CryptoServiceProvider();
checksum=new byte[1024];
checksum = md5.ComputeHash(bytes);
}
else if (optSHA1.IsChecked == true)
{
SHA1 sha1 = new System.Security.Cryptography.SHA1CryptoServiceProvider();
checksum = sha1.ComputeHash(bytes);
}
else {
MessageBox.Show("No option selected.");
return;
}
//string schecksum = BitConverter.ToString(checksum);//ASCIIEncoding.ASCII.GetString(checksum);
// Create a new Stringbuilder to collect the bytes
// and create a string.
StringBuilder sb = new StringBuilder();
// Loop through each byte of the hashed data
// and format each one as a hexadecimal string.
for (int i = 0; i < checksum.Length; i++)
{
sb.Append(checksum[i].ToString("x2"));
}
// Return the hexadecimal string.
//return sb.ToString();
MessageBox.Show("checksum-1 = " + sb.ToString() + Environment.NewLine + "checksum-2 = " + txtChecksum.Text);
于 2012-07-25T11:17:11.250 に答える