00001 /* 00002 * The Mana World 00003 * Copyright 2008 The Mana World Development Team 00004 * 00005 * This file is part of The Mana World. 00006 * 00007 * The Mana World is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation; either version 2 of the License, or 00010 * any later version. 00011 * 00012 * The Mana World is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with The Mana World; if not, write to the Free Software 00019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 */ 00021 00022 #include "encryption.h" 00023 00024 #include <time.h> 00025 #include <stdlib.h> 00026 00027 using namespace Encryption; 00028 00029 static char getRandomCharacter() 00030 { 00031 // Taking a number of character taken between 33 and 127 00032 // (every normal characters from ASCII table). 00033 int number = (rand() % 94) + 33; 00034 00035 // Those characters are dodged to ease user input and avoid database 00036 // breaks: " ' , ` \ ^ * / ~ | 00037 if (number == 34 || number == 39 || number == 42 || number == 44 || 00038 number == 47 || number == 92 || number == 94 || number == 96 || 00039 number == 124 || number == 126) 00040 number++; 00041 00042 return (char) number; 00043 } 00044 00048 std::string createRandomPassword() 00049 { 00050 std::string result = ""; 00051 00052 // Ititializing random seed. 00053 srand(time(NULL)); 00054 00055 // Taking a number of character taken between 20 and 30. 00056 int characterNumber = (rand() % 10) + 20; 00057 00058 for (int a = 1; a < characterNumber; a++) 00059 { 00060 result += getRandomCharacter(); 00061 } 00062 00063 return result; 00064 }