erifash Posted August 23, 2006 Share Posted August 23, 2006 More of a scrap really, this is an encryption method that I learned a while ago. I finally decided to put it into code. First let me explain how bit chaining works. You take the ascii value of the first two characters in a string and BitXOR() them together. Take the resulting value and xor it with the third character. Take that value and xor it with the next and so on... To decrypt it just use that process in reverse. This method does NOT encrypt the last character of the string because it needs that value intact for decryption. Change one character in the string and all the characters to the right of it change in the encrypted version. This is the base for many other forms of encryption. It is weak by itself but strong when paired with other methods. Get enough methods together and make it unique enough and you have your own encryption algorithm. An example comes included with the code. The first parameter is whether you want to encrypt (1) or decrypt (0). Here's the code: Func _BitChain( $bEncrypt, $sData ) Local $arr = StringSplit($sData, "") If $bEncrypt Then Local $last = BitXOR(Asc($arr[1]), Asc($arr[2])), $ret = Chr($last) For $i = 1 to $arr[0] - 1 $last = BitXOR($last, Asc($arr[$i])) $ret &= Chr($last) Next $ret &= $arr[$arr[0]] Else Local $ret = $arr[$arr[0]] For $i = 1 to $arr[0] - 2 $ret = Chr(BitXOR(Asc($arr[$arr[0] - $i - 1]), Asc($arr[$arr[0] - $i]))) & $ret Next EndIf Return $ret EndFunc $str = "abcdefghijklmnopqrstuvxyz" $enc = _BitChain(1, $str) $dec = _BitChain(0, $enc) MsgBox(0, Hex(BinaryString($enc)) & "::" & StringLen($enc), $dec) I hope you like it! My UDFs:_FilePrint() | _ProcessGetName() | _Degree() and _Radian()My Scripts:Drive Lock - Computer Lock Using a Flash DriveAU3Chat - Simple Multiuser TCP ChatroomStringChunk - Split a String Into Equal PartsAutoProxy - Custom Webserver Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now