matlab中gui设计时如何隐藏密码,使密码显示为星号

应该在哪个控件哪个函数里调用呢?

第1个回答  2015-06-16
设置edit控件的KeypressFcn属性,通过链接的回调函数,使得每输入一个字符后马上用*号代替。
参考

http://cn.mathworks.com/matlabcentral/fileexchange/23045-getauthentication本回答被提问者和网友采纳
第2个回答  推荐于2018-05-09
设置edit控件的KeypressFcn属性,通过GetAuthentication的回调函数,使得每输入一个字符后马上用*号代替。
回调函数的代码:
function PasswordKeyPress(hObject,event)

hAuth = getappdata(0,'hAuth');

password = get(hAuth.ePassword,'UserData');

switch event.Key

case 'backspace'

password = password(1:end-1);

case 'return'

uiresume;

return;

otherwise

password = [password event.Character];

end

set(hAuth.ePassword,'UserData',password)
————————————————————————————————————
或者调用java实现密码框

function passwordfield

figure('menu','none','pos',[300 400 200 200]);
jPass = javax.swing.JPasswordField;
hPass = javacomponent(jPass,[10 10 100 20]);
hText = uicontrol('style','text','pos',[30 40 60 40]);
uicontrol('pos',[120 10 50 20],'string','OK','callback',{@check,hPass, hText});

function check(~, ~, hPass, hText)
pswd = hPass.text;
if strcmp(pswd, '123')
set(hText,'string','密码正确')
else
set(hText,'string','密码错误')
end

不过上边的密码是明文的,只要有人可以看到这个文件的内容就能知道密码,所以一般需要个加密方法来做加密(例如MD5,SHA之类的)
不过其实就算做了加密方法,如果可以修改上述代码,照样可以很轻松绕过密码
所以可能需要把文件转化为p文件或者用其他手段编译,才能更加实际的实现密码访问功能。
第3个回答  2015-06-16
editbox中应该可以设置输入的内容追问

哪个属性可以设置呢,VB里是可以的,matlab里面就没有找到

相似回答