ËÒ¡ÁÕ¤Ó¶ÒÁ ¢ÍãËéä»â¾Êµìŧ àÇ纺ÍÃì´¨Õ·Ù¨Õà¹çµ´Íµ¤ÍÁ µÑÇãËÁèá·¹¹èФÃѺ

ËÃ×͵ԴµèÍà¢éÒÁÒ·Ò§ Inbox ·Õè à¿«ºØê¤ ¼Á¤ÃѺ

˹éÒËÅÑ¡
¢èÒÇÊÒà - º·¤ÇÒÁ ·Ñé§ËÁ´
VB 6/VB.Net
ASP/ASP.Net
¨Ñº©èÒ¤ÍÁ¾ÔÇàµÍÃì
àÃÕ¹ÃÙé¼èÒ¹ Flash Movie
º·¤ÇÒÁ·ÕèÁÕ¼ÙéµÍºÅèÒÊØ´  
 RSS Feeds
 ´ÒǹìâËÅ´â»Ãá¡ÃÁ RSS Reader ä´é·Õè¹Õè ...   Download â»Ãá¡ÃÁ RSS Reader

Forum - www.g2gnet.com
Webmaster - www.g2gnet.com
Visitors - Session views
 5 6 1 6 0 9 0

7 ¸Ñ¹ÇÒ¤Á ¾.È.2549
44 Users On-Line.
Visitors - Page views
 8 9 7 3 8 3 3
1 ¡ØÁÀҾѹ¸ì ¾.È.2551

Google   
àÇçº g2gnet.com
¢¹Ò´µÑÇÍÑ¡ÉÃ:  

¡ÒÃà¢éÒÃËÑÊ áÅÐ ¶Í´ÃËÑÊ ´éǵÃáÈÒʵÃì XOR (eXclusive OR) - ÀÒ¤ 1

Category »  VB 6/VB.Net
â´Â : Webmaster àÁ×èÍ 14/9/2552   àÇÅÒ: 14:14
(ÍèÒ¹ : 54483) 
ÍÔàÅç¡·Ã͹ԡÊì¡éÒÇä»ã¹·Ø¡ªèÒ§ ¹éͧ¨§¹Ñ觿ѧ¾Õè¢Ò¹ä¢ ... ¹Õè¤×Íà¹×éÍà¾Å§àªÕÂÃìàÁ×èÍÊÁѼÁàÃÕ¹ÍÂÙè »Õ 1 ªèÒ§ÍÔàÅç¡·Ã͹ԡÊì ... ¤ÍÁ¾ÔÇàµÍÃì·Õèá¾ÃèÃкҴãªé§Ò¹¡Ñ¹ã¹·Ø¡Çѹ¹Õé ªÔé¹ÊèǹÀÒÂ㹢ͧÁѹ¶Ù¡ÊÃéÒ§ÁÒ¨Ò¡ÍØ»¡Ã³ìÍÔàÅç¡·Ã͹ԡÊì·Ñé§¹Ñé¹áËÅÐ ... ªÕÇÔµ¢Í§¡ÒÃàÃÕ¹ÍÔàÅç¡·Ã͹ԡÊì¢Í§¼Á ¨Ò¡ÃдѺ »Çª (»ÃÐÇѵԪÑèÇ) ÁÒÂѹ¨º »ÇÊ (»ÃÐÇѵÔàÊÕÂ) «Öè§ãªéàÇÅÒ·Ñé§ËÁ´ 5 »Õ ... ¾Õè¹éͧ¤ÃѺ ... ¼Áàͧ¡çäÁèÃÙéÁÒ¡è͹Åèǧ˹éÒËÃÍ¡¤ÃѺÇèÒ Áѹ¨Ðà»ç¹¢éÍ´Õ áÅÐ ·ÓãËé¼ÁÁÕ¾×é¹°Ò¹·Õè¤è͹¢éÒ§¨Ðá¹è¹ ¨¹Êè§¼ÅÁÒ¶Ö§·Ø¡Çѹ¹Õéä´é ... ´Ñ§¹Ñé¹àÁ×èͼÁä´é¡éÒÇà¢éÒÁÒÊÙèÇѧǹáËè§âÅ¡¢Í§¤ÍÁ¾ÔÇàµÍÃìÍÂèÒ§¨ÃÔ§æ¨Ñ§æ ¤ÇÒÁÃÙé·Ò§´éÒ¹ÍÔàÅç¡·Ã͹ԡÊì¡ç¶Ù¡¢Ø´¢Öé¹ÁÒãªé§Ò¹ä´éµÅÍ´ ... ÍÂèÒ§àªè¹ àÃ×èͧǧ¨Ã´Ô¨ÔµÍÅ «Ö觨Ðà»ç¹àÃ×èͧÃÒÇà¡ÕèÂǡѺµÃáР(Logic) à§×èÍ¹ä¢ (Condition) ¡ÒõѴÊԹ㨠(Decision) ¡µÑÇÍÂèÒ§àªè¹ ǧ¨Ã AND, OR, NOR, NAND ËÃ×Í XOR Gate (Gate ã¹·Õè¹ÕéäÁèãªèºÔÅÅì ࡵµì ... áµèá»ÅÇèÒ»ÃеÙ) ... ´Ñ§·Õè¨Ðä´éÊÒ¸ÂÒÂãËéä´éÃѺªÁ¡Ñ¹´Ñ§µèÍ仹Õé
·ÄÉ®Õ eXclusive OR (àÍç¡«ì¤ÅÙ«Õ¿ ÍÍÃì - XOR)
  • XOR à»ç¹¡ÒáÃзӷҧµÃáÈÒʵÃì â´ÂÁÕËÅÑ¡¡Òà ¤×Í
    • ÁÕÍÔ¹¾ØµµÑé§áµèÊͧÍÔ¹¾Øµ¢Öé¹ä» àªè¹ A, B (ã¹µÒÃÒ§¤ÇÒÁ¨ÃÔ§´éÒ¹ÅèÒ§)
    • ¨ÐãËéàÍÒ·ì¾Øµà»ç¹Åͨԡ 0 àÁ×èÍ ÍÔ¹¾ØµÁÕ ÅͨԡàËÁ×͹¡Ñ¹
    • ¨ÐãËéàÍÒ·ì¾Øµà»ç¹Åͨԡ 1 àÁ×èÍ ÍÔ¹¾ØµÁÕ ÅͨԡµèÒ§¡Ñ¹

    Çèҡѹ§èÒÂæÊÑ鹿 ¤×Í ... (ºÔµä˹) ÁÕ¤èÒàËÁ×͹¡Ñ¹ä´é 0 ¡Ñº ÁÕ¤èÒµèÒ§¡Ñ¹ä´é 1
µÒÃÒ§¤ÇÒÁ¨ÃÔ§ ËÃ×Í Truth Table (ÍÂèÒÍèÒ¹¼Ô´à»ç¹ Truth Today ÅèÐ)
    A B XOR
    0 0 0
    0 1 1
    1 0 1
    1 1 0
    ËÃ×Í
    True Xor True = False
    True Xor False = True
    False Xor True = True
    False Xor False = False
    ËÃ×Í
    1 Xor 1 = 0
    1 Xor 0 = 1
    0 Xor 1 = 1
    0 Xor 0 = 0
¡ÒôÓà¹Ô¹¡Ò÷ҧµÃáÈÒʵÃì¢Í§ XOR ¡ÒôÓà¹Ô¹¡Ò÷ҧµÃáÈÒʵÃì¢Í§ XOR ÀÒÉÒÃдѺÊÙ§
    àÇÅÒ·Õèà¢Õ¹¤ÓÊÑè§ 65 Xor 20 ¨Ðä´é¤ÓµÍº¤×Í 85 (°Ò¹ 10) ... ¹Õè¤×ͤÇÒÁÊÒÁÒö¢Í§ÀÒÉÒÃдѺÊÙ§ («Ö觤سäÁèÁÕ¤ÇÒÁ¨Óà»ç¹µéͧá»Å§àÅ¢°Ò¹¡è͹)
    áµèá·é·Õè¨ÃÔ§áÅéÇ Áѹ¨Ðà¡Ô´»¯ÔºÑµÔ¡ÒÃÃдѺºÔµ¢Öé¹ÁÒ â´Â·ÕèàÃÒÁͧäÁèàËç¹ ...áµèàÃÒµéͧʹã¨Áѹ
    ËÁÒ¤ÇÒÁÇèÒ ·Ñé§µÑǵÑé§ (65) áÅÐ µÑÇ¡ÃÐ·Ó (20) ¨Ðµéͧ¶Ù¡á»Å§ãËéà»ç¹àÅ¢°Ò¹ 2 ÍÍ¡ÁÒ¡è͹ ´Ñ§¹Õé ¤×Í
    1 0 0 0 0 0 1 ... ËÃ×Í 65 (°Ò¹ 10)
    X X 1 0 1 0 0 ... ËÃ×Í 20 (°Ò¹ 10) ... ¤èÒã´·ÕèÁÒ¡ÃÐ·Ó XOR ¡Ñº X ¡ç¨Ðä´é¤èÒ¹Ñé¹àÊÁÍ
    ------------------
    1 0 1 0 1 0 1 ... ËÃ×Í 85 (°Ò¹ 10)
    ========
â¤é´ VB6 㹡ÒõÃǨÊͺÃËÑÊ ASCII Code

    Dim Dec As Byte
    
    For Dec = 0 To 255
        Debug.Print "Character : " & Chr(Dec) & " : ASCII Code = " & Dec
        If Dec = 255 Then Exit For
    Next
¡ÒôÓà¹Ô¹¡Ò÷ҧµÃáÈÒʵÃì¢Í§ XOR ã¹ MS Visual Basic 6.0
    Asc("A") Xor 255
    "A" ÁÕ ASCII Code = 65 (°Ò¹ 10) àÃÒ¨Ðà¢Õ¹â¤é´ 65 Xor 255 ¡çä´é
    ¹Ñ蹤×͵ÑÇÍÑ¡¢ÃÐ "A" ¡ç´Õ ËÃ×Í àÅ¢¨Ó¹Ç¹àµçÁ 65 ¡çµÒÁ ... ¨Ðµéͧá»Å§ãËé¡ÅÒÂà»ç¹àÅ¢°Ò¹ 2 ¡è͹¨Ö§¨Ð·Ó XOR ä´é ä§ÅèФÃѺ ... ¾Õè¹éͧ
    àÁ×èÍ "A" (ËÃ×Í 65 °Ò¹ 10) ÊÒÁÒö¡ÃШÒÂà»ç¹àÅ¢°Ò¹ 2 ä´é¤×Í 1 0 0 0 0 0 1
    àÁ×èÍ 255 ÊÒÁÒö¡ÃШÒÂà»ç¹àÅ¢°Ò¹ 2 ä´é¤×Í 1 1 1 1 1 1 1 1 ËÃ×Í 255 (°Ò¹ 10)

    X 1 0 0 0 0 0 1 (65) ... ¤èÒã´·ÕèÁÒ¡ÃÐ·Ó XOR ¡Ñº X ¡ç¨Ðä´é¤èÒ¹Ñé¹àÊÁÍ
    1 1 1 1 1 1 1 1 (255)
    --------------------
    1 0 1 1 1 1 1 0 (190)
    =========
    ¤ÓµÍº¤×Í 190 (°Ò¹ 10) ... ÁÒ¨Ò¡¹éÓ˹ѡã¹áµèÅкԵ 128 + 32 + 16 + 8 + 4 + 2 ËÃ×Í ...
    BE (ÚàÅ¢°Ò¹ 16) ËÃ×Í µÃ§¡ÑºµÑÇ "¾" ã¹µÒÃÒ§ ASCII Code


    ÊÓËÃѺàÅ¢°Ò¹ 16 ¨Ð¹Ñº¨Ò¡àÅ¢°Ò¹ 2 ¤ÃÒÇÅÐ 4 ºÔµ (¨Ò¡¢ÇÒ仫éÒÂ) ¤×Í
    4 ºÔµáá (¨Ò¡¢ÇÒÊØ´) ... 1 1 1 0 = 14 (°Ò¹ 10) ËÃ×Í E (°Ò¹16)
    4 ºÔµµèÍä» 1 0 1 1 = 11 (°Ò¹ 10) ËÃ×Í B (°Ò¹16)

    ÁÒ¶Ö§µÃ§¹ÕéËÒ¡ÂѧäÁèà¢éÒ㨠... ¡ÃسҡÅѺä»ÈÖ¡ÉÒàÃ×èͧàÅ¢°Ò¹¡Ñ¹ãËÁè¤ÃѺ ... ¾Õè¹éͧ

    ¤ÅÔê¡·Õè¹Õè ... à¾×èÍÍèÒ¹¤èÒµÒÃÒ§áÍÊ¡Õéâ¤é´»ÃСͺ´éÇ ¨Ðä´éàËç¹ÀÒ¾µÒÁ

    àÁ×èÍ Asc("A") = ASCII Code = 65 (°Ò¹ 10)
    µéͧ·ÓÀÒÂã¹Ç§àÅ纡è͹ Asc("A") Xor 255 ... à¾×èÍãËéàÅ¢¨Ó¹Ç¹àµçÁ 65 XOR 255 ... ¨Ðä´é¤ÓµÍº = 190 (°Ò¹ 10)

    ¨Ò¡¹Ñé¹ãªé¤ÓÊÑè§ (ËÃ×Ϳѧ¤ìªÑè¹) Chr(àÅ¢¨Ó¹Ç¹àµçÁ) ... ËÃ×Í Chr(190)
    ¤×Í ... Chr(Asc("A") Xor 255)) = "¾" ... à¾×èÍãËéà»ç¹µÑÇÍÑ¡¢ÃÐ



    ¹Õè¤×Í¡ÒùÓàÍÒµÑÇÍÑ¡¢ÃзÕÅеÑÇ ÁÒ·ÓµÃáÈÒʵÃì´éÇÂÇÔ¸Õ¡Òà XOR à¾×èÍà»ÅÕè¹á»Å§¢éÍÁÙÅ ... ËÃ×Í àÃÕ¡ÇèÒ¡ÒÃà¢éÒÃËÑÊ (Encryption)
    ËÒ¡¹ÓµÑÇÍÑ¡¢ÃзÕèà¢éÒÃËÑÊ ÁÒ·ÓµÃáÈÒʵÃì´éÇÂÇÔ¸Õ¡Òà XOR ÍÕ¡Ãͺ ... àÃÕ¡ÇèÒ¡ÒöʹÃËÑÊ (Decryption)
´ÒǹìâËÅ´
´ÒǹìâËÅ´ Source Code ÊÓËÃѺ MS Visual Basic 6.0 - Service Pack 6
 ´ÒǹìâËÅ´ Visual Basic 6.0 SP5: Run-Time Redistribution Pack
 ´ÒǹìâËÅ´ Microsoft Data Access Object (MDAC) áÅÐ Jet 4.0 Update
 ´ÒǹìâËÅ´ Microsoft Visual Basic Service Pack 6
¢éÍÁÙÅà¾ÔèÁàµÔÁ
¡ÒÃà¢éÒÃËÑÊ áÅÐ ¶Í´ÃËÑÊ ´éǵÃáÈÒʵÃì XOR (eXclusive OR) - ÀÒ¤ 2
µÃǨÊͺ¡Òá´á»é¹¤ÕÂìºÍÃì´à¾×èÍãËéÃѺ¤èÒ੾ÒеÑÇàÅ¢ áÅШش·È¹ÔÂÁà·èÒ¹Ñé¹ (VB6 ¹èÐè¤ÃѺ)
µÃǨÊͺ¡Òá´á»é¹¤ÕÂìºÍÃì´à¾×èÍãËéÃѺ¤èÒ੾ÒеÑÇàÅ¢ (VB.Net)
¡ÒÃá»Å§àÅ¢°Ò¹ 10 à»ç¹°Ò¹ 2 ... àÃ×èͧËÁÙæ áµèÊÔè§·ÕèÍÂÙè¢éÒ§ã¹¹Ñé¹ ... äÁèä´éËÁÙ
ÇÔ¸Õ¡ÒäԴ¡ÑºµÑÇàÅ¢¨Ó¹Ç¹àµçÁ
àÃÔèÁµé¹¡Ãкǹ¡Ò÷ӧҹ

Design Time


Run Time

͸ԺÒÂÁÒ«èÐÂÒÇà¿×éÍ ... ÁÒ´Ùâ¤é´ÊÑ鹿¡Ñ¹à¶ÍÐ ...

Option Explicit

' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' American Standard Code for Information Interchange - ASCII (áÍÊ¡Õé)
' http://www.ascii.ca/cp874.htm
' http://en.wikipedia.org/wiki/ASCII
' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Private Sub Form_Load()

    Me.Move (Screen.Width - Width) \ 2, (Screen.Height - Height) \ 2
    
    txtData.Text = "This is a book"
    txtEncrypt.Text = ""
    txtDecrypt.Text = ""
    
End Sub

' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' àÃÔèÁµé¹¡ÒÃà¢éÒÃËÑÊ áÅÐ ¶Í´ÃËÑÊ
' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdRun_Click()

    If Trim(txtData.Text) = "" Or Len(Trim$(txtData.Text)) = 0 Then Exit Sub
    ' ãËéà¢éÒÃËÑÊ´éÇ¡Òà eXclusive OR - XOR ¾ÃéÍÁ¡ÑºµÑÇà¢éÒÃËÑÊ
    ' µÑÇà¢éÒÃËÑÊ ËÃ×Í ¡Ø­á¨ ·Õè¼ÁµÑé§äÇé¤×Í 255 à»ç¹àÅ¢¨Ó¹Ç¹àµçÁ¢¹Ò´ 1 亵ì
    ' «Öè§àÁ×èÍà¡Ô´¡ÒáÃзÓÃдѺºÔµ¡Ñº XOR ¤èÒ¹Õé¨Ðà»ÅÕè¹á»Å§à»ç¹
    ' 1 1 1 1 1 1 1 1 (°Ò¹ 2) = 255 (°Ò¹ 10)
    txtEncrypt.Text = Encrypt(txtData.Text, 255)
    ' ÍèÒ¹ÇÔ¸Õ¡ÒÃá»Å§àÅ¢°Ò¹ 10 à»ç¹àÅ¢°Ò¹ 2 »ÃСͺ´éǤÃѺ
    ' http://www.g2gnet.com/News/activenews_view.asp?articleID=129
    
    ' ¶Í´ÃËÑÊ´éÇ¡Òà eXclusive OR - XOR ¾ÃéÍÁ¡ÑºµÑǶʹÃËÑÊ
    txtDecrypt.Text = Decrypt(txtEncrypt.Text, 255)
    
End Sub

' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ¡ÒÃà¢éÒÃËÑÊẺ§èÒÂæÍÒÈÑÂËÅÑ¡¡Òâͧ XOR - ºÔµã´àËÁ×͹¡Ñ¹¨Ðä´é 0 ºÔµã´·ÕèµèÒ§¡Ñ¹¨Ðä´é 1
' ãËé MyData ÃѺ¤èҪش¢éͤÇÒÁà¾×èÍà¢éÒÃËÑÊ
' XORvalue ÃѺ¤èÒµÑÇà¢éÒÃËÑÊ ËÃ×Í ¡Ø­á¨
' áÅФ׹¤èÒ¡ÅѺ¨Ò¡¿Ñ§¤ìªÑè¹ä»´éÇÂ
' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function Encrypt(MyData As String, XORvalue As Integer) As String
    Dim i As Integer
    
    ' ǹÃͺµÒÁ¨Ó¹Ç¹¢Í§¢éÍÁÙÅ·Õèà¢éÒÃËÑÊ
    For i = 1 To Len(MyData)
        Encrypt = Encrypt & Chr(Asc(Mid(MyData, i, 1)) Xor XORvalue)
    Next
End Function

' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ¡ÒöʹÃËÑÊ (Decrypt) ¡çá¤è·ÓÂé͹¡ÅѺ´éÇÂÇÔ¸Õ¡ÒÃà´ÔÁ ¤èÒà´ÔÁ ...
' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function Decrypt(MyData As String, XORvalue As Integer) As String
    Dim i As Integer
    
    ' ǹÃͺµÒÁ¨Ó¹Ç¹¢Í§¢éÍÁÙÅ·Õè¶Í´ÃËÑÊ
    For i = 1 To Len(MyData)
        Decrypt = Decrypt & Chr(Asc(Mid(MyData, i, 1)) Xor XORvalue)
    Next
End Function
Conclusion:
¹Õèà»ç¹ËÅÑ¡¡ÒâÑé¹¾×é¹°Ò¹¢Í§¡ÒÃà¢éÒÃËÑÊ/¶Í´ÃËÑÊ¢éÍÁÙÅ ´éǵÃáÈÒʵÃìẺ eXclusive OR «Öè§¼Á͸ԺÒÂãËéàËç¹¶Ö§¤ÓÊÑè§»¯ÔºÑµÔ¡ÒÃÃдѺºÔµ ËÃ×Í¡ÅèÒǶ֧¤ÓÇèÒ "ºÔµ - Bit" «Öè§à»ç¹Ë¹èÇ·ÕèàÅç¡·ÕèÊØ´¢Í§¤ÍÁ¾ÔÇàµÍÃì (·Õè¤Ø³æ·èÒ¹æÃèÓàÃÕ¹¡Ñ¹ÁÒ ËÃ×Í ·èͧ¡Ñ¹ÁÒä´é¢Öé¹ã¨¹Ñè¹áËÅÐ ... 55555+) ... ËÇѧÇèÒ¾Õè¹éͧ¡ç¤§¨Ðä´éàË繤ÇÒÁÊӤѭ áÅÐ ¡ÒùÓÁÒãªé§Ò¹¢Í§¡Ãкǹ¡Ò÷ҧ´éÒ¹µÃáÈÒʵÃì¡Ñ¹¹èФÃѺ¼Á

¨Õ ·Ù ¨Õ à¹çµ ´Íµ ¤ÍÁ - g2gNet Dot Com
àÅ¢·ÐàºÕ¹¾Ò³ÔªÂìÍÔàÅç¡·Ã͹ԡÊì 0407314800231
CopyLeft © 2004 - 2099 g2gNet.Com All rights reserved.
Email: [email protected] ËÃ×Í â·Ã. 08-6862-6560