Bueno, a ver...
Para hacer una función de encripción hay que tener un poco de creatividad y astucia, aparte de saber manipular a nivel binario los caracteres. Un ejemplo muy simple es usar una serie fija de números que sumas a cada carácter de la clave, digamos 5 3 7, entonces la clave "AAA" se grabaría como "FDH". A esto podés aplicarle operaciones lógicas de bits, por ejemplo negar todos los bits de cada carácter. Podés intercalar caracteres aleatorios para meter "ruido" (el resultado sería una clave más larga), podés hacerle a cada carácter un XOR con el próximo carácter de la cadena, etc etc. Y si necesitás poder recuperar la password original, tenés que programar también la función que haga todo lo inverso.
Lo del OBJ: Cualquier módulo C o CPP, al ser compilado, produce un OBJ, que es código máquina, no ejecutable pero listo para ser "metido" en un ejecutable. Muchas veces uno directamente genera EXE ignorando los pasos intermedios, pero si solo compilás el módulo (sin linkear), obtendrás un OBJ de ese módulo.
Si usás Turbo C++ tenés que crear un Project, en el cual indicás cual es tu módulo principal (C o CPP con el programa propiamente dicho), y también indicás el otro OBJ. Al "armar" el proyecto, te va a compilar el módulo fuente y te va a linkear el objeto resultante con el otro de la función.
En el fuente del programa deberá estar el prototipo de la función externa para que el compilador valide.
Cualquier cosa escribime.
Ojo, esto es solo una idea, quizás a alguien se le ocurra algo mejor.
G