-2

製品のロックを解除するために、WIX と C# カスタム アクションを使用しています。古いスタイルから (34450-ee33-8736333-30393) のようなロック解除キーを変更する予定です。これに適したアルゴリズムを教えてください。そして、これを学ぶためのオンライン資料を提供することは有益でしょう.
情報が必要な場合はお知らせください。

4

1 に答える 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 に答える