#include <stdio.h>
#include <string.h>
#include <ctype.h>

extern char *crypt(const char *, const char *);

int main() {
   char passwd[100];
   char salt[3];
   char *result;
   size_t length;
   int i;
   int nletters;

   for(;;) {
      printf("Enter password (THIS WILL BE ECHOED TO YOUR SCREEN).\n");
      scanf("%99s",passwd);
      length=strlen(passwd);
      if((length>8)||(length<6)) {
         printf("Password must be 6, 7 or 8 characters long.\n");
         continue;
         }
   
      nletters=0;
      for(i=0;i<length;i++) {
         if(isalpha((unsigned char)(passwd[i]))) nletters++;
         }

      if(nletters==length) {
         printf("Password should contain at least one non-letter.\n");
         continue;
         }
      break;
      }

   printf("Enter salt.  This is not secret but should be a random\n"
          "combination of two characters, each of which is an upper\n"
          "or lower case letter, a digit, or . or /.\n");

   scanf("%3s",salt);
   result=crypt(passwd,salt);

   if(result==NULL) {
      printf("Error in crypt.\n");
      goto blank;
      }
   printf("Password is \"%s\"\n",passwd);
   printf("Send the following string: \"%s\".\n",result);

blank:
   length=0;
   memset(passwd,'\0',100);
   memset(salt,'\0',3);
   memset(result,'\0',strlen(result));
   return 0;
   }



