Index: /trunk/sources/HeuristicLab.Clients.Common/3.3/ClientFactory.cs
===================================================================
--- /trunk/sources/HeuristicLab.Clients.Common/3.3/ClientFactory.cs	(revision 7689)
+++ /trunk/sources/HeuristicLab.Clients.Common/3.3/ClientFactory.cs	(revision 7690)
@@ -41,5 +41,5 @@
       where T : ClientBase<I>, I
       where I : class {
-      return CreateClient<T, I>(endpointConfigurationName, remoteAddress, Settings.Default.UserName, Settings.Default.Password);
+      return CreateClient<T, I>(endpointConfigurationName, remoteAddress, Settings.Default.UserName, CryptoService.DecryptString(Settings.Default.Password));
     }
     public static T CreateClient<T, I>(string endpointConfigurationName, string remoteAddress, string userName, string password)
@@ -71,5 +71,5 @@
     public static ChannelFactory<I> CreateChannelFactory<I>(string endpointConfigurationName, string remoteAddress)
       where I : class {
-      return CreateChannelFactory<I>(endpointConfigurationName, remoteAddress, Settings.Default.UserName, Settings.Default.Password);
+      return CreateChannelFactory<I>(endpointConfigurationName, remoteAddress, Settings.Default.UserName, CryptoService.DecryptString(Settings.Default.Password));
     }
     public static ChannelFactory<I> CreateChannelFactory<I>(string endpointConfigurationName, string remoteAddress, string userName, string password)
Index: /trunk/sources/HeuristicLab.Clients.Common/3.3/CryptoService.cs
===================================================================
--- /trunk/sources/HeuristicLab.Clients.Common/3.3/CryptoService.cs	(revision 7690)
+++ /trunk/sources/HeuristicLab.Clients.Common/3.3/CryptoService.cs	(revision 7690)
@@ -0,0 +1,55 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Security.Cryptography;
+using System.Text;
+
+namespace HeuristicLab.Clients.Common {
+  /// <summary>
+  /// Provides functionality for encrypting and decrypting strings. 
+  /// Based on the code from http://weblogs.asp.net/jgalloway/archive/2008/04/13/encrypting-passwords-in-a-net-app-config-file.aspx
+  /// </summary>
+  public static class CryptoService {
+    private static byte[] entropy = System.Text.Encoding.Unicode.GetBytes("Salt Is Not A Password");
+
+    public static string EncryptString(String input) {
+      byte[] encryptedData = ProtectedData.Protect(
+        Encoding.Unicode.GetBytes(input),
+        entropy,
+        DataProtectionScope.CurrentUser);
+      return Convert.ToBase64String(encryptedData);
+    }
+
+    public static String DecryptString(string encryptedData) {
+      try {
+        byte[] decryptedData = System.Security.Cryptography.ProtectedData.Unprotect(
+          Convert.FromBase64String(encryptedData),
+          entropy,
+          System.Security.Cryptography.DataProtectionScope.CurrentUser);
+        return System.Text.Encoding.Unicode.GetString(decryptedData);
+      }
+      catch (Exception ex) {
+        throw ex;
+      }
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Clients.Common/3.3/HeuristicLab.Clients.Common-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Clients.Common/3.3/HeuristicLab.Clients.Common-3.3.csproj	(revision 7689)
+++ /trunk/sources/HeuristicLab.Clients.Common/3.3/HeuristicLab.Clients.Common-3.3.csproj	(revision 7690)
@@ -108,4 +108,5 @@
     <Reference Include="System.Core" />
     <Reference Include="System.Drawing" />
+    <Reference Include="System.Security" />
     <Reference Include="System.ServiceModel" />
     <Reference Include="System.Windows.Forms" />
@@ -117,4 +118,5 @@
   <ItemGroup>
     <Compile Include="ClientFactory.cs" />
+    <Compile Include="CryptoService.cs" />
     <Compile Include="PasswordDialog.cs">
       <SubType>Form</SubType>
Index: /trunk/sources/HeuristicLab.Clients.Common/3.3/PasswordDialog.cs
===================================================================
--- /trunk/sources/HeuristicLab.Clients.Common/3.3/PasswordDialog.cs	(revision 7689)
+++ /trunk/sources/HeuristicLab.Clients.Common/3.3/PasswordDialog.cs	(revision 7690)
@@ -32,5 +32,5 @@
     private void PasswordDialog_Load(object sender, EventArgs e) {
       usernameTextBox.Text = Settings.Default.UserName;
-      passwordTextBox.Text = Settings.Default.Password;
+      passwordTextBox.Text = CryptoService.DecryptString(Settings.Default.Password);
       savePasswordCheckBox.Checked = Settings.Default.SavePassword;
     }
@@ -41,5 +41,5 @@
       Settings.Default.Password = string.Empty;
       Settings.Default.Save();
-      Settings.Default.Password = passwordTextBox.Text;
+      Settings.Default.Password = CryptoService.EncryptString(passwordTextBox.Text);
       if (savePasswordCheckBox.Checked)
         Settings.Default.Save();
Index: /trunk/sources/HeuristicLab.Clients.Common/3.3/Properties/Settings.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Clients.Common/3.3/Properties/Settings.Designer.cs	(revision 7689)
+++ /trunk/sources/HeuristicLab.Clients.Common/3.3/Properties/Settings.Designer.cs	(revision 7690)
@@ -2,5 +2,5 @@
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.239
+//     Runtime Version:4.0.30319.530
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
@@ -38,16 +38,4 @@
         [global::System.Configuration.UserScopedSettingAttribute()]
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-        [global::System.Configuration.DefaultSettingValueAttribute("anonymous")]
-        public string Password {
-            get {
-                return ((string)(this["Password"]));
-            }
-            set {
-                this["Password"] = value;
-            }
-        }
-        
-        [global::System.Configuration.UserScopedSettingAttribute()]
-        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Configuration.DefaultSettingValueAttribute("True")]
         public bool SavePassword {
@@ -59,4 +47,18 @@
             }
         }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA36TvN4MDBkWUU6yPrzj49gAAAAACAAAAAAADZgAAwAAAABAAA" +
+            "ABr3+B3SidbFwV5hCTHGoESAAAAAASAAACgAAAAEAAAAGSI+4CIIV5GmEl09qLBIxIYAAAAkpj3t9H1L" +
+            "BYhpUjjoM6qEc83XlY0xbnuFAAAADY3OscJ1F9ThR3SHB0sLax4TAN8")]
+        public string Password {
+            get {
+                return ((string)(this["Password"]));
+            }
+            set {
+                this["Password"] = value;
+            }
+        }
     }
 }
Index: /trunk/sources/HeuristicLab.Clients.Common/3.3/Properties/Settings.settings
===================================================================
--- /trunk/sources/HeuristicLab.Clients.Common/3.3/Properties/Settings.settings	(revision 7689)
+++ /trunk/sources/HeuristicLab.Clients.Common/3.3/Properties/Settings.settings	(revision 7690)
@@ -6,10 +6,10 @@
       <Value Profile="(Default)">anonymous</Value>
     </Setting>
-    <Setting Name="Password" Type="System.String" Scope="User">
-      <Value Profile="(Default)">anonymous</Value>
-    </Setting>
     <Setting Name="SavePassword" Type="System.Boolean" Scope="User">
       <Value Profile="(Default)">True</Value>
     </Setting>
+    <Setting Name="Password" Type="System.String" Scope="User">
+      <Value Profile="(Default)">AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA36TvN4MDBkWUU6yPrzj49gAAAAACAAAAAAADZgAAwAAAABAAAABr3+B3SidbFwV5hCTHGoESAAAAAASAAACgAAAAEAAAAGSI+4CIIV5GmEl09qLBIxIYAAAAkpj3t9H1LBYhpUjjoM6qEc83XlY0xbnuFAAAADY3OscJ1F9ThR3SHB0sLax4TAN8</Value>
+    </Setting>
   </Settings>
 </SettingsFile>
Index: /trunk/sources/HeuristicLab.Clients.Common/3.3/app.config
===================================================================
--- /trunk/sources/HeuristicLab.Clients.Common/3.3/app.config	(revision 7689)
+++ /trunk/sources/HeuristicLab.Clients.Common/3.3/app.config	(revision 7690)
@@ -11,9 +11,9 @@
                 <value>anonymous</value>
             </setting>
-            <setting name="Password" serializeAs="String">
-                <value>anonymous</value>
-            </setting>
             <setting name="SavePassword" serializeAs="String">
                 <value>True</value>
+            </setting>
+            <setting name="Password" serializeAs="String">
+                <value>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA36TvN4MDBkWUU6yPrzj49gAAAAACAAAAAAADZgAAwAAAABAAAABr3+B3SidbFwV5hCTHGoESAAAAAASAAACgAAAAEAAAAGSI+4CIIV5GmEl09qLBIxIYAAAAkpj3t9H1LBYhpUjjoM6qEc83XlY0xbnuFAAAADY3OscJ1F9ThR3SHB0sLax4TAN8</value>
             </setting>
         </HeuristicLab.Clients.Common.Properties.Settings>
