diff --git a/passcode.m b/passcode.m
new file mode 100644
index 0000000000000000000000000000000000000000..f22f70eeac7ddf7cb4115067ba808b80a62634bb
--- /dev/null
+++ b/passcode.m
@@ -0,0 +1,74 @@
+function pass = passcode
+%PASSCODE  password input dialog box.
+%  passcode creates a modal dialog box that returns user password input.
+%  Given characters are substituted with '*'-Signs like in usual password dialogs.
+%
+%  usage:
+%  password = PASSCODE
+%
+% Adapted from https://www.mathworks.com/matlabcentral/fileexchange/6590-passcode
+% Version: v1.2 (03-Mar-2008)
+% Author:  Elmar Tarajan [MCommander@gmx.de]
+
+
+ScreenSize = get(0,'ScreenSize');
+hfig = figure('Menubar','none', ...
+    'Units','Pixels', ...
+    'Resize','off', ...
+    'NumberTitle','off', ...
+    'Name',['password required'], ...
+    'Position',[ (ScreenSize(3:4)-[300 75])/2 300 75], ...
+    'Color',[0.8 0.8 0.8], ...
+    'WindowStyle','modal');
+hedit = uicontrol('Parent',hfig, ...
+    'Style','Edit', ...
+    'Enable','inactive', ...
+    'Units','Pixels','Position',[49 28 202 22], ...
+    'FontSize',15, ...
+    'String',[], ...
+    'BackGroundColor',[0.7 0.7 0.7]);
+hpass = uicontrol('Parent',hfig, ...
+    'Style','Text', ...
+    'Tag','password', ...
+    'Units','Pixels','Position',[51 30 198 18], ...
+    'FontSize',15, ...
+    'BackGroundColor',[1 1 1]);
+hwarn = uicontrol('Parent',hfig, ...
+    'Style','Text', ...
+    'Tag','error', ...
+    'Units','Pixels','Position',[50 2 200 20], ...
+    'FontSize',8, ...
+    'String','character not allowed',...
+    'Visible','off',...
+    'ForeGroundColor',[1 0 0], ...
+    'BackGroundColor',[0.8 0.8 0.8]);
+
+set(hfig,'KeyPressFcn',{@keypress_Callback,hedit,hpass,hwarn}, ...
+    'CloseRequestFcn','uiresume')
+
+uiwait
+pass = get(hpass,'userdata');
+delete(hfig)
+
+
+function keypress_Callback(~,data,~,hpass,~)
+
+pass = get(hpass,'userdata');
+
+switch data.Key
+    case 'backspace'
+        pass = pass(1:end-1);
+    case 'return'
+        uiresume
+        return
+    otherwise
+        try
+            pass = [pass data.Character];
+        catch
+            disp('Some error occured during password entry!')
+        end
+end
+
+set(hpass,'userdata',pass)
+set(hpass,'String',char('*'*sign(pass)))
+