It's not Encryption / Decryption. It's
ENCODING. Base64 or "B64" is used to identify packet headers via encoded integer ID's. Base64 means that you use 64 different characters to represent numbers, like in Binary you only use 1's and 0's, Binary is "Base 2", Decimal is "Base 10", Hex is "Base 16". You need Base 64 Encoding because you cannot just send integers mixed in with other integers, you have an integer identifying the header's ID, what it represents, and telling the client or server how it's meant to be interpreted.
Then you have to send large integers with strings in other bodies of packets, so you encode those, but wouldn't it be confusing if you decode Base 64 encoded integers twice, that's why VL64 encoding was brought in. So you have encoding for the headers, and then you have encoding for regular integers (e.g. number of Credits). The Encryption, is RC4. I wish people would stop mixing up encoding and encryption, it's not that complicated, these encoding algorithms take letters and symbols and represent numbers with them, in Hexadecimal you use letters to count beyond "10" (in Decimal form), instead you use 'A' (Hexadecimal) to represent "10" (decimal).
Further reading:
Base64 - Wikipedia, the free encyclopedia
http://forum.ragezone.com/f331/guide...ctions-477478/
This has everything to do with Habbo. From version 7 of Habbo all the way to some revision of Release 63 ('R63') this has been the protocol used to develop habbo emulators. Don't speak if you don't know what you're talking about. This person took the liberty of porting this to JavaScript for NodeJS which can be used to power servers, so you could code a whole Habbo emulator in pure JavaScript for the older versions of Habbo, and run it behind a powerful JavaScript engine.