Hi. From the documentation of CCProxy, I got this function that decodes a user password. (string with numbers to string with characters)
I need the exact opposite as well, the code needed to encode the password. (to a 'number string').
To someone who knows a little C, this should be fairly trivial. If you can reproduce this function in JavaScript that would be even more terrific. That way I don't have to use a command line application child process to do this simple encoding/decoding.
Can you help me? Thanks!
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define _MAX_BUF_LEN 2014
static char* PasswordDecode(char * szPassword)
{
char szEncode[1024];
char strDecodePass[_MAX_BUF_LEN + 1] = { "" }, strPass[_MAX_BUF_LEN + 1] = { "" };
strcpy(strDecodePass, szPassword);
for (unsigned int i = 0; i < strlen(strDecodePass) / 3; i++)
{
char szCode[_MAX_BUF_LEN + 1];
strcpy(szCode, strDecodePass + i * 3);
szCode[3] = 0;
int nCode = atoi(szCode);
nCode = 999 - nCode;
sprintf(szEncode, "%c", nCode);
strcat(strPass, szEncode);
}
strcpy(szPassword, strPass);
return szPassword;
};
int main(int argc, char **argv)
{
printf(
PasswordDecode(argv[1])
);
return 0;
}
To test if your Encode function is correct, the following plain text passwords and their encoded equivalent.
babble
901902901901891898
anus
902889882884
abcdefghijklmnopqrstuvwxyz1234567890
902901900899898897896895894893892891890889888887886885884883882881880879878877950949948947946945944943942951
Top comments (3)
What's holding you back from translating the function yourself?
My honest advice is to give it a go, try and see if can google just enough C to understand the code and translate it, line by line. Once you have done that there may still be a bug. If you can post that code it will be much easier to help you get to the finish. Finding a bug is fun, like a little puzzle. Also a much smaller effort than translating the whole thing.
Are the only allowed characters letters and digits? Case?
I am not sure. I think most utf8 characters are allowed. Some would have to check the CCProxy documentation to be sure. Can't you tell by the code in my post?
In my case, if a-zA-Z0-9 works then that is all I need.