Alors un integer c'est une variable basique, elle ne peut contenir que des nombres et une chaine contient des lettres, si on veut.
Par exemple, pour créer un integer, on fait comme cela :
new var;
Par contre pour créer une chaine de 19 caractères, on fait comme cela :
new var[20];
Même si j'ai mis 20 entre crochet, cette chaine ne peut contenir que 19 caractères, c'est une règle.
Or, ton hash du mot de passe est une chaine, tu l'enregistre bien en tant que chaine à l'inscription.
Par contre à la lecture du fichier .ini, tu lis le hash comme si c'était un integer.