بۇ يازمىنى ئاخىرىدا شەرەر تەھرىرلىگەن. ۋاقتى 2017-5-21 13:41
بىز بۈگۈن ئىلگىرى يوللانغان «كومپىيوتېر ئۇچۇرلىرىغا ئېرىشىش» دېگەن يازمىمىزنىڭ ئاخىرى بولغان دېتالدا كومپىيوتېر نومۇرى ۋە شۇ كومپىيوتېر نومۇرى ئارقىلىق تىزىملاش نومۇرى ھاسىل قىلىشنى كۆرۈپ ئۆتىمىز. ھەممىمىزگە مەلۇم شوپۇرلۇق نەزىرىيە ئىمتاھان سېستىمىللىرىغا ئوخشاش ھەقلىق دېتاللار ئادەتتە مۇشۇ خىل ئۇسۇل ئارقىلىق دېتالنىڭ قالايمىقان تارقىلىپ كېتىشىنىڭ ئالدىنى ئالدىغان بولۇپ، بۇ ئۇسۇلدا ھاسىل قىلىنغان كومپىيوتېر نومۇرى بىردىن بىر بولۇپ، بۇنىڭدىن ئېرىشكەن تىزىملاش نومۇرىمۇ ھەم شۇنداق بولىدۇ. شۇنىڭ ئۈچۈن سىز دېتالنى يەنە بىر كومپىيوتېرغا قاچىلىغان ۋاقتىڭىزدا كومپىيوتېر نومۇرى ئۆزگىرىپ كەتكەنلىكتىن ئىلگىرىكى تىزىملاش نومۇرى ئىشلىمەيدۇ. ئۇنداقتا بۇنىڭ كودىنى قانداق يازىدىغاندىمىز؟
ئادەتتە كومپىيوتېرنىڭ قاتتىق دېسكا نومۇرى ۋە ئاساسىي تاختا نومۇرى قاتارلىق بىرقانچە قاتتىق دېتال ئۇچۇرلىرى ئۆزمەيدۇ ھەمدە بىردىنبىر بولىدۇ. شۇڭا دېتالىمىز ھاسىل قىلغان كومپىيوتېر نومۇرىنىڭ بىردىنبىر بولىشى ئۈچۈن ئادەتتە بۇ ئۇچۇرلارنى ئىشلىتىمىز. بۇ يەردە خېلى كۆپ ئۇچۇرلار بار ئىكەن، ئەمدى قايسىسىنى ئىشلىتىشىمىز كېرەك؟ ئەگەر سىز دېتالىڭىز قاچىلانغان كومپىيوتېرنىڭ قاتتىق دېسكىسىنى ئالماشتۇرغاندا دېتالنى قايتىدىن سېتىۋالسۇن دېسىڭىز، چوقۇم قاتتىق دېسكا نومۇرىنى ئىشلىتىسىز. ئەگەر ئاساسىي تاختىسىنى ئالماشتۇرغاندا سېتىۋالسۇن دېسىڭىز، ئاساسىي تاختا نومۇرىنى ئىشلىتىسىز. ئەگەر ھەر ئىككى خىل ئەھۋالدا سېتىۋالسۇن دېسىڭىز، ئوخشاشلا ھەرئىككى نومۇرنى تەڭ ئىشلىتىسز. دېمەك سىزنىڭ ئېھتىياجىڭىز قانداق بولسا شۇ بويىچە تاللاپ ئىشلەتسىڭىز بولىدۇ. تۆۋەندە بىز مىسال سۈپىتىدە ئاساسىي تاختا نومۇرىنى ئىشلىتىمىز. بىز «كومپىيوتېر ئۇچۇرلىرىغا ئېرىشىش» دېگەن يازمىمىزدا ئالاقىدار ئۇچۇرلارغا ئېرىشىشنى كۆرۈپ بولغان ئىدۇق، شۇڭا بۇ يەردە قايتا توختالمايمىز.
- 'VB.NET
- Dim SerialNumber As String = GetmainboardID()
مەزمۇننى كۆچۈرۈۋېلىش- //C#
- String SerialNumber = GetmainboardID();
مەزمۇننى كۆچۈرۈۋېلىش
كېيىنكى قەدەمدە، بىز تالللىۋالغان نومۇرنى مەخپىيلەشتۈرۈپ، ئۇنى كومپىيوتېر نومۇرى قىلىپ بېكىتىمىز. ئۇنداقتا بىز بۇنى قانداق مەخپىيلەشتۈرسەك بولار؟ توردا مەخپىيلەشتۈرۈش دەپ ئىزدىسىڭىز، كۆپ خىل ئۇسۇللار چىقىدۇ. بىز تۆۋەندە شۇنىڭ بىرى بولغان MD5 بويىچە مەخپىيلەشتۈرۈش ئۇسۇلىنى كۆرۈپ باقايلى:- 'VB.NET
- '''
- ''' ھەرپ تىزمىسىنىڭ 32 ھەرپتىن تۈزۈلگەن 16لىك سېستىمىلىق Hash قىممىتىغا ئېرىشىش
- '''
- Function getMd5Hash(ByVal input As String) As String
- ' يېڭىدىن MD5CryptoServiceProvider ئوبىكتى قۇرۇش
- Dim md5Hasher As New MD5CryptoServiceProvider()
- ' كىرگۈزۈلگەن ھەرپ تىزمىسىنى بايتقا ئايلاندۇرۇش بىلەن بىرگە Hash قىممىتىنى ھېسابلاش
- Dim data As Byte() = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input))
- ' يېڭىدىن StringBuilder ئوبىكتى قۇرۇش。
- Dim sBuilder As New StringBuilder()
- Dim i As Integer
- For i = 0 To data.Length - 1
- sBuilder.Append(data(i).ToString("x2"))
- Next i
- ' 16لىك سېستىمىدىكى ھەرپ تىزمىسىنى چوڭ يېزىلىشقا ئايلاندۇرۇپ قايتۇرۇش
- Return sBuilder.ToString().ToUpper
- End Function
مەزمۇننى كۆچۈرۈۋېلىش
- [code]//C#
- ///
- /// ھەرپ تىزمىسىنىڭ 32 ھەرپتىن تۈزۈلگەن 16لىك سېستىمىلىق Hash قىممىتىغا ئېرىشىش
- ///
- string getMd5Hash(string input)
- {
- // يېڭىدىن MD5CryptoServiceProvider ئوبىكتى قۇرۇش
- MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
- // كىرگۈزۈلگەن ھەرپ تىزمىسىنى بايتقا ئايلاندۇرۇش بىلەن بىرگە Hash قىممىتىنى ھېسابلاش
- byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
- // يېڭىدىن StringBuilder ئوبىكتى قۇرۇش。
- StringBuilder sBuilder = new StringBuilder();
- for (int i = 0; i <= data.Length - 1; i++)
- {
- sBuilder.Append(data[i].ToString("x2"));
- }
- // 16لىك سېستىمىدىكى ھەرپ تىزمىسىنى چوڭ يېزىلىشقا ئايلاندۇرۇپ قايتۇرۇش
- return sBuilder.ToString().ToUpper();
- }
مەزمۇننى كۆچۈرۈۋېلىش بۇ فونكىسىيە ئارقىلىق ئېرىشكەن ھەرپ تىزمىسى 32 خانىدىن تەركىپ تاپقان بولۇپ، سىز بۇنى 5دىن 5 گورۇپپا ھالەتتە 25 خانىنى ياكى 4دىن 4 گورۇپپا 16 خانىنى ئايرىۋالسىڭىز بولىدۇ. مەن بۇنى تۆۋەندە ئالدىنقى 16 خانىنى ئېلىپ، 4دىن 4 گورۇپپا قىلىپ كومپىيوتېر نومۇرى قىلىۋالدىم.
- 'VB.NET
- Dim Machine As String = getMd5Hash(SerialNumber).Substring(0, 16)
مەزمۇننى كۆچۈرۈۋېلىش- //C#
- String Machine = getMd5Hash(SerialNumber).Substring(0, 16);
مەزمۇننى كۆچۈرۈۋېلىش
ئاخىرىدا بىز بۇ كومپىيوتېر نومۇرى ئارقىلىق تىزىملاش نومۇرىغا ئېرىشىمىز. بۇ قەدەممۇ ئالدىنقى قەدەمگە ئوخشاش بولۇپ، كومپىيوتېر نومۇرىنى مەخپىيلەشتۈرۈپ يېڭى بىر نومۇر ھاسىل قىلساقلا بولىدۇ. بىز بۇيەردە يەنىلا ئالدىنقى مەخپىيلەشتۈرۈش ئۇسۇلى ئارقىلىق مەخپىيلەشتۈرۈپ، ئېرىشكەن 32 خانىلىق ھەرپتىن ئالدىنقى 16 خانىنى ئېلىپ، 4تىن 4 گورۇپپا قىلىپ تىزىملاش نومۇرى قىلدۇق.
- 'VB.NET
- Dim Registe As String = getMd5Hash(Machine).Substring(0, 16)
مەزمۇننى كۆچۈرۈۋېلىش- //C#
- String Registe=getMd5Hash(Machine).Substring(0, 16);
مەزمۇننى كۆچۈرۈۋېلىش
ئەگەر ئىشلەتكۈچى كىرگۈزگەن تىزىملاش نومۇرى بىلەن بىز ھاسىل قىلغان تىزىملاش نومۇرى ئوخشاش بولمىسا، ئۇ ھالدا ئىشلەتكۈچى تىزىملاش نومۇرىنى خاتا كىرگۈزگەن بولىدۇ. ئەگەر ئوخشاش بولسا، دېتال تىزىملاش نومۇرى توغرا بولغان بولۇپ، دېتال نورمال ئېچىلىش بىلەن بىرگە تىزىملاش نومۇرىنى ساندانغا، سەپلىمە ھۆججەتكە ۋە ياكى تىزىملاش جەدۋىلىگە ساقلىنىپ، كىلەركى قېتىم دېتالنى قايتا قوزغاتقاندا ساقلىۋالغان تىزىملاش نومۇرىنى ئوقۇپ ئېلىپ سېلىشتۇرىمىز. توغرا بولسا ئېچىلىدۇ، بولمىسا قايتا تىزىملاش نومۇرىنى كىرگۈزۈشنى تەلەپ قىلىمىز.
قېنى سىزمۇ سىناپ بېقىڭ. پىروگىراممىغا قىزىقىدىغانلار ئاستىدىكى چىپار كود(ئىككىلىك كود)نى سايىلەپ ياكى «شەرەر»، «xarar_09» دەپ ئىزدىتىپ شەرەر سالونىنى قىتىۋالساڭلار بولىدۇ.
مەنبە: شەرەر تورى |