- #include <stdio.h>
- #include <time.h> /*Pour la fonction time, nécessaire à l'initialisation de l'aléatoire*/
- #include <stdlib.h> /*Pour les fonctions aléatoires comme srand*/
- #include <string.h> /*Pour les fonctions sur les chaines de caractères comme strlen*/
-
- #define MAX 61
-
-
- /* Fonction contre le dépassement de mémoire (buffer overflow) */
- short bo(int crt_max)
- {
- short erreur=0;
- if(crt_max>=MAX)
- {
- erreur=1;
- }
- return erreur;
- }
-
- /* Fonction principale */
- int main()
- {
- /* Initialisation des variables */
- FILE *fp;
- int i=0;
- float hasard;
- int tire=0;
- int longueur;
- int vchoix;
- char ascii;
- char mdp[MAX];
- char nomfichier[18]="gestionnaire.html";
- char adressesite[MAX];
- char nomsite[MAX];
- char pseudo[MAX];
- int nbr_crt;
- time_t nb_seconde, temps;
- puts("--==[[Internet Password Remember]]==--");
-
-
- /* Récupère l'adresse du site, moins de x caractère */
- while(1){
- printf("Entrer l'adresse du site (%d caracteres max):",MAX-1);
- gets(adressesite);
- if(bo(strlen(adressesite))!=0 ){
- puts("OverFlowed !");
- }
- else{
- break;
- }
- }
- /* Récupère le nom du site, moins de x caractère */
- while(1){
- printf("Entrer le nom du site (%d caracteres max):",MAX-1);
- gets(nomsite);
- if(bo(strlen(nomsite))!=0 ){
- puts("OverFlowed !");
- }
- else{
- break;
- }
- }
-
- /* Récupère nom d'utilisateur du site, moins de x caractère */
- while(1){
- printf("Entrer le pseudo pour le site (%d caracteres max):",MAX-1);
- gets(pseudo);
- if(bo(strlen(pseudo))!=0 ){
- puts("overflowed");
- }
- else{
- break;
- }
- }
-
- /* Récupère une réponse 1=Oui, 0=Non pour générer un mdp */
- puts("Voulez vous generer le password ?");
- puts("Oui taper 1, Non taper 0.");
- scanf("%d",&vchoix);
-
- /* vchoix = 1 */
- if(vchoix==1){
- while(1){
- printf("Longueur du mot de passe? (%d caracteres max):",MAX-1);
- scanf("%d",&longueur);
- if(bo(longueur)!=0){
- puts("OverFlowed !");
- }
- else{
- break;
- }
- }
- /*Récupération du nombre de seconde écoulées depuis le 01/01/1970 à 00h00min00s*/
- nb_seconde=time(&temps);
- /*Initialisation de la fonction aléatoire*/
- srand(nb_seconde);
- for(i=0;i<longueur;i++){
- hasard=rand();//On tire un réel au hasard entre 0 et 2 147 483 647
- tire=((hasard/RAND_MAX)*100)+33;//On transforme ce réel en entier compris entre 33 et 133, Les caractères affichable de la table ascii allant de 33 à 126.
- //Si tire supérieur ou égal à 127, on le rejete et on affiche des valeurs nulles en retour.
- if (tire>=127){
- /*puts("Sup à 126");*/
- i--;
- tire=0;
- ascii='0';
- }
- else{
- ascii=tire;
- mdp[i]=ascii;
- }
- /*printf("Tirage %d: %d\nASCII: %c\n ----------\n",i,tire,ascii);*/
- }
- printf("Mot de passe genere: %s\n", mdp);
- }
- else{
- /* Récupère le mot de passe du site, moins de x caractère */
- while(1){
- printf("Entrer un mot de passe pour le site (%d caracteres max):",MAX-1);
- scanf("%s",&mdp);
- if(bo(strlen(mdp))!=0 ){
- puts("overflowed");
- }
- else{
- break;
- }
- }
- }
- /* Inscription des données dans le fichier gestionnaire.html */
-
- // On ouvre le fichier en ajout, on y écrit à la fin et on ferme le fichier.
- fp=fopen(nomfichier,"a");
- fprintf(fp,"<div id='pass'><a href='%s' target='blank'>%s</a> :",adressesite,nomsite);
- fprintf(fp," %s :",pseudo);
- fprintf(fp," %s</div>\n",mdp);
- fclose(fp);
- printf("Le fichier a ete correctement genere (fichier: %s)", nomfichier);
- puts("Merci d'avoir utilise Internet Password Remember");
- puts("--==[[Presser une touche pour quitter]]==--");
- getchar();
- getc(stdin);
- return(0);
- }
#include <stdio.h>
#include <time.h> /*Pour la fonction time, nécessaire à l'initialisation de l'aléatoire*/
#include <stdlib.h> /*Pour les fonctions aléatoires comme srand*/
#include <string.h> /*Pour les fonctions sur les chaines de caractères comme strlen*/
#define MAX 61
/* Fonction contre le dépassement de mémoire (buffer overflow) */
short bo(int crt_max)
{
short erreur=0;
if(crt_max>=MAX)
{
erreur=1;
}
return erreur;
}
/* Fonction principale */
int main()
{
/* Initialisation des variables */
FILE *fp;
int i=0;
float hasard;
int tire=0;
int longueur;
int vchoix;
char ascii;
char mdp[MAX];
char nomfichier[18]="gestionnaire.html";
char adressesite[MAX];
char nomsite[MAX];
char pseudo[MAX];
int nbr_crt;
time_t nb_seconde, temps;
puts("--==[[Internet Password Remember]]==--");
/* Récupère l'adresse du site, moins de x caractère */
while(1){
printf("Entrer l'adresse du site (%d caracteres max):",MAX-1);
gets(adressesite);
if(bo(strlen(adressesite))!=0 ){
puts("OverFlowed !");
}
else{
break;
}
}
/* Récupère le nom du site, moins de x caractère */
while(1){
printf("Entrer le nom du site (%d caracteres max):",MAX-1);
gets(nomsite);
if(bo(strlen(nomsite))!=0 ){
puts("OverFlowed !");
}
else{
break;
}
}
/* Récupère nom d'utilisateur du site, moins de x caractère */
while(1){
printf("Entrer le pseudo pour le site (%d caracteres max):",MAX-1);
gets(pseudo);
if(bo(strlen(pseudo))!=0 ){
puts("overflowed");
}
else{
break;
}
}
/* Récupère une réponse 1=Oui, 0=Non pour générer un mdp */
puts("Voulez vous generer le password ?");
puts("Oui taper 1, Non taper 0.");
scanf("%d",&vchoix);
/* vchoix = 1 */
if(vchoix==1){
while(1){
printf("Longueur du mot de passe? (%d caracteres max):",MAX-1);
scanf("%d",&longueur);
if(bo(longueur)!=0){
puts("OverFlowed !");
}
else{
break;
}
}
/*Récupération du nombre de seconde écoulées depuis le 01/01/1970 à 00h00min00s*/
nb_seconde=time(&temps);
/*Initialisation de la fonction aléatoire*/
srand(nb_seconde);
for(i=0;i<longueur;i++){
hasard=rand();//On tire un réel au hasard entre 0 et 2 147 483 647
tire=((hasard/RAND_MAX)*100)+33;//On transforme ce réel en entier compris entre 33 et 133, Les caractères affichable de la table ascii allant de 33 à 126.
//Si tire supérieur ou égal à 127, on le rejete et on affiche des valeurs nulles en retour.
if (tire>=127){
/*puts("Sup à 126");*/
i--;
tire=0;
ascii='0';
}
else{
ascii=tire;
mdp[i]=ascii;
}
/*printf("Tirage %d: %d\nASCII: %c\n ----------\n",i,tire,ascii);*/
}
printf("Mot de passe genere: %s\n", mdp);
}
else{
/* Récupère le mot de passe du site, moins de x caractère */
while(1){
printf("Entrer un mot de passe pour le site (%d caracteres max):",MAX-1);
scanf("%s",&mdp);
if(bo(strlen(mdp))!=0 ){
puts("overflowed");
}
else{
break;
}
}
}
/* Inscription des données dans le fichier gestionnaire.html */
// On ouvre le fichier en ajout, on y écrit à la fin et on ferme le fichier.
fp=fopen(nomfichier,"a");
fprintf(fp,"<div id='pass'><a href='%s' target='blank'>%s</a> :",adressesite,nomsite);
fprintf(fp," %s :",pseudo);
fprintf(fp," %s</div>\n",mdp);
fclose(fp);
printf("Le fichier a ete correctement genere (fichier: %s)", nomfichier);
puts("Merci d'avoir utilise Internet Password Remember");
puts("--==[[Presser une touche pour quitter]]==--");
getchar();
getc(stdin);
return(0);
}