- 0
This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..
Question
renobizarro
I'm working on a Player Control Panel for their accounts, it should let players register accounts, change password and recover password.
everything was working good, but when i tried encription it went wrong, it works with some passwords but with others it doesn't, I'm using this script to encrypt passwords, shared by Simple2008
http://www.maxcheaters.com/topic/106006-sharec-l2off-password-encryption/
the thing is that this script does work with some passwords and not with all passwords players uses.
for example:
root -> 0xB1BE70E9A83F19192CB593935EC4E2E2 --> my encription
root -> 0xB1BE70E9A83F19192CB593935EC4E2E2 --> l2pass.exe
cafecafe150 -> 0x31F7E38C3108CA12BB3ECC18D54F6969 --> my encription
cafecafe150 -> 0x31F7E38C3108CD15BC39C81CD14B6D6D --> l2pass.exe
as you can see, it encrypts only some passwords
I'm doing it as follows(in code)
encpw ep = new encpw(); var pw = ep.encpwd(txtNewPassword.Text); Response.Write(BitConverter.ToString(pw).Replace("-", ""));encpw is the next code:
public byte[] encpwd(string password) { var key = new byte[16]; long one, two, three, four; var dst = new byte[16]; var nBytes = password.Length; for (var i = 0; i < nBytes; i++) { key[i] = Encoding.ASCII.GetBytes(password.Substring(i, 1))[0]; dst[i] = key[i]; } long rslt = @key[0] + @key[1] * 256 + @key[2] * 65536 + @key[3] * 16777216; one = rslt * 213119 + 2529077; one = one - ToInt32(one / 4294967296) * 4294967296; rslt = @key[4] + @key[5] * 256 + @key[6] * 65536 + @key[7] * 16777216; two = rslt * 213247 + 2529089; two = two - ToInt32(two / 4294967296) * 4294967296; rslt = @key[8] + @key[9] * 256 + @key[10] * 65536 + @key[11] * 16777216; three = rslt * 213203 + 2529589; three = three - ToInt32(three / 4294967296) * 4294967296; rslt = @key[12] + @key[13] * 256 + @key[14] * 65536 + @key[15] * 16777216; four = rslt * 213821 + 2529997; four = four - ToInt32(four / 4294967296) * 4294967296; key[3] = ParseInt(one / 16777216); key[2] = ParseInt((((Int32)(one - @key[3] * 16777216)) / 65535)); key[1] = ParseInt((one - @key[3] * 16777216 - @key[2] * 65536) / 256); key[0] = ParseInt((one - @key[3] * 16777216 - @key[2] * 65536 - @key[1] * 256)); key[7] = ParseInt(two / 16777216); key[6] = ParseInt((two - @key[7] * 16777216) / 65535); key[5] = ParseInt((two - @key[7] * 16777216 - @key[6] * 65536) / 256); key[4] = ParseInt((two - @key[7] * 16777216 - @key[6] * 65536 - @key[5] * 256)); key[11] = ParseInt(three / 16777216); key[10] = ParseInt((three - @key[11] * 16777216) / 65535); key[9] = ParseInt((three - @key[11] * 16777216 - @key[10] * 65536) / 256); key[8] = ParseInt((three - @key[11] * 16777216 - @key[10] * 65536 - @key[9] * 256)); key[15] = ParseInt(four / 16777216); key[14] = ParseInt((four - @key[15] * 16777216) / 65535); key[13] = ParseInt((four - @key[15] * 16777216 - @key[14] * 65536) / 256); key[12] = ParseInt((four - @key[15] * 16777216 - @key[14] * 65536 - @key[13] * 256)); dst[0] = ParseInt(dst[0] ^ @key[0]); for (var i = 1; i < dst.Length; i++) dst[i] = ParseInt(@dst[i] ^ @dst[i - 1] ^ @key[i]); for (var i = 0; i < dst.Length; i++) if (dst[i] == 0) dst[i] = 102; return dst; } private static int ToInt32(long val) { return Convert.ToInt32(val); } private static byte ParseInt(long val) { return BitConverter.GetBytes(val)[0]; }any ideas of what would be causing this?
5 answers to this question
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