diff --git a/EduNetworkBuilder/NB.cs b/EduNetworkBuilder/NB.cs
index d499a3d..20d4893 100644
--- a/EduNetworkBuilder/NB.cs
+++ b/EduNetworkBuilder/NB.cs
@@ -310,6 +310,7 @@ namespace EduNetworkBuilder
         public static int UntaggedVLAN = -1; //If the packet is not tagged.
         public static int MaxPacketsBeforeOptimizing = 50;
         public static int DefaultPasswordLen = 6;
+        public static int DefaultMachinePasswordLen = 20;
         public static int DefaultSaltLen = 50;
 
         public static string AllowedPasswordCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-=!~@#$%^&*()_+{}[]/?<>,.";
diff --git a/EduNetworkBuilder/PersonClass.cs b/EduNetworkBuilder/PersonClass.cs
index e25c378..8de8a33 100644
--- a/EduNetworkBuilder/PersonClass.cs
+++ b/EduNetworkBuilder/PersonClass.cs
@@ -200,6 +200,7 @@ namespace EduNetworkBuilder
             writer.WriteElementString("PasswordHint", PasswordHint);
             if(isAdmin) //only admins have students, so they are the only ones who need to store this path
                 writer.WriteElementString("StudentFilePath", StudentFilePath);
+            if (AltPassword == "") AltPassword = TrippleDESDocumentEncryption.GenMachinePW(NB.GetRandom());
             writer.WriteElementString("AltPassword", AltPassword);
             writer.WriteElementString("IsAdmin", isAdmin.ToString());
             writer.WriteElementString("ChangePasswordAtLogin", ChangePassAtFirstLogin.ToString());