TizzyT

XorUInteger -TizzyT

Jan 12th, 2016
295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 1.13 KB | None | 0 0
  1.     Public Structure XorUInteger
  2.         Private Shared Rnd As New Random
  3.         Private ReadOnly Secret As UInteger
  4.         Private StoredValue, TokenSum, ValueSum As UInteger
  5.         Public Sub New(ByRef Token As UInteger)
  6.             Secret = Rnd.Next()
  7.             Token = Rnd.Next()
  8.             TokenSum = (Secret Xor Token)
  9.         End Sub
  10.         Public Sub Store(ByRef Token As UInteger, ByVal Value As UInteger)
  11.             If (Secret Xor Token) = TokenSum Then
  12.                 Token = Rnd.Next()
  13.                 TokenSum = (Secret Xor Token)
  14.                 ValueSum = (Secret Xor Value)
  15.                 StoredValue = (Value Xor Token)
  16.             Else
  17.                 Throw New Exception("Token checksum mismatch")
  18.             End If
  19.         End Sub
  20.         Default Public ReadOnly Property Value(ByVal Token As UInteger) As UInteger
  21.             Get
  22.                 Dim R As UInteger = (Token Xor StoredValue)
  23.                 If (R Xor Secret) = ValueSum _
  24.                     Then Return R _
  25.                     Else Throw New Exception("Value checksum mismatch")
  26.             End Get
  27.         End Property
  28.     End Structure
Add Comment
Please, Sign In to add comment